跟maven的tomcat插件相比,cargo插件更专业也更灵活,缺点是配置稍显麻烦。
1. 首先你的 web 工程必须是一个 maven 工程。
2.修改 tomcat 的 tomcat-users.xml 文件,目录为 conf\tomcat-users.xml ,加入以下内容:
1.<role rolename="manager"/> 2.<user username="tomcat" password="123456" roles="manager"/>
3.在 maven 工程的 pom 文件中加入 tomcat-maven-plugin 插件,以下为 pom 代码示例:
此示例代码为existing方式的本地部署,其它部署方式及远程部署,请参见附件文档。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.malangmedia</groupId> <artifactId>malangmedia.cargoDeployToLocalTomcat</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <name>cargoDeployToLocalTomcat</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <finalName>autoCargo</finalName> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <!-- 设置war包名称 --> <finalName>${finalName}</finalName> <plugins> <!-- cargo自动部署插件 --> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.0</version> <configuration> <!-- 要部署的容器类型、版本及地址 --> <container> <containerId>tomcat6x</containerId> <home>E:\apache-tomcat-6.0.30</home> </container> <!-- 本地部署的模式及新服务器地址和端口号 --> <configuration> <!--<type>standalone</type> <home>F:\apache-tomcat-6.0.30</home> <properties> <cargo.servlet.port>8085</cargo.servlet.port> </properties>--> <type>existing</type> <home>E:\apache-tomcat-6.0.30</home> </configuration> </configuration> </plugin> </plugins> </build> </project>
4.将该工程导入 SVN 。
5. 在 hudson 中为该 SVN 地址新建一个工程,在配置 maven 运行命令时,在 install 命令后,加入一个 tomcat 部署
的命令。
Install 在前,cargo :start 在后,顺序不能错,这样才能保证 install 成功后再部署。
6. 如此,每当 SVN 版本更新后, hudson 就会自动编译该工程,编译成功后,再通过 tomcat-maven-plugin 插件自动部署至指定 tomcat 服务器,且该部署为热部署,服务器不需要重启,并支持远程部署。