jenkins加maven加tomcat加svn注意事项

jenkins+maven+tomcat做持续集成是web网站不可缺少的了,大部分网站都详细的写了如何配置。这里记一下遇到的问题

1.jenkins 签出svn代码,这个还是比较简单的,网上配置步骤也多,配置成这样,在主页点击立即构建,就会把代码从SVN上加入工作空间了。

2.加入触发器,我设置的是只要SVN有更新就立即构建代码,也可以按照项目需求进行变更,如一天一次。

3.jenkins里使用maven打包,并且跳过测试,通过这种方法会在工作空间的target目录下生成一个*.war包(这个war包就是打包好的程序,可以手动复制该文件到tomcat的webapp目录)关于maven的使用,另有其他网站介绍,主要就是修改pom.xml文件和使用goals命令,是项目管理的一大利器

 

4.jenkins自动部署tomcat.这里比较麻烦 ,需要先安装jenkins插件,Deploy war/ear to a container。然后在配置里填写如下,war文件用**/*.war就好了。tomcat服务器的管理员账户密码以及tomcat的登录地址加上端口号。如果本地调试,地址就是localhost了。

 

但是,这样部署之后,tomcat实际上并不能部署成功,会报错,

错误1.如下:

Caused by: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter

at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:849)

at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201)

at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060)

这个时候,需要修改C:\Program Files\apache-tomcat-7.0.70\conf 目录下的context.xml文件

添加

这个错误解决之后,还有可能出现另外一个错误

错误2,如下:

SEVERE:     Resource ‘/WEB-INF/lib/ant-1.7.0.jar’ is missing

这很奇怪,需要用到ant的jar包,好吧jenkins部署tomcat环境要用到ant,那就往pom.xml里添加ant的相关配置

org.apache.ant

ant

1.10.1

这样添加之后,再运行项目的立即构建功能,会发现,jenkins能够自动把tomcat目录下的老的无用工程文件删除,重新注入新的工程文件,其实和 maven 的tomcat7:redeploy功能是完全相同的,只是jenkins下使用maven tomcat7:redeploy总报错,所以无奈只能用jenkins插件里的deploy方法

Posted in 自动化测试讨论