最近在项目中配置CI环境,于是发生了下面的事情:
第一阶段 -- 安装tomcat
1. 找来Linux机器;
2. 下载安装Tomcat6;
3. 配置JAVA_HOME,并启用配置tomcat-user.xml;
4. 启动tomcat:
$./bin/startup.sh
一切顺利!
第二阶段 -- Ant打包
1. 生成ant脚本(build.xml);
2. 在eclipse中运行Ant,生成.war文件;
3. 打开http://{linux_host}:9999/manager/html,部署.war包;
依旧顺利!
第三阶段 -- Maven部署
1. 在项目根目录下添加pom.xml文件,并添加必须的jar包;
2. 更新eclipse里的.project文件,包含maven相关信息(是参考前一个maven项目修改的);
3. 更新.classpath文件,让它包maven的pom.xml中指定的jar包;
4. 在pom.xml中添加tomcat6-maven-plugin如下配置,以期实现自动远程tomcat部署;
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat6-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://{linux_host}:9999/manager/html</url> <server>CI</server> <path>/xxxx</path> <warFile>xxxxx.war</warFile> </configuration> </plugin>并在settings.xml中添加了id为CI的server,在其中添加了username/password。
接着就是测试mvn tomcat6:redeploy,很遗憾出现了"build failed!",并提示"can not invoke tomcat manager"。
google了一圈发现没有为部署用户名添加manager-script的role,想想觉得有可能,因为当前是manager-gui的role,而分析来看tomcat6-maven-plugin有可能不是模拟http post方式发送的request。但是很遗憾这样修改之后还是没有成功。一番研究之后发现有人提到了admin-script的role,于是将这个role也加入到用户中,重启后测试成功!
至此,第三阶段工作完成。剩下的就是整理一下maven的配置pom.xml以及代码目录结构。