PASSION之SVN+MAVEN+TOMCAT+JENKINS配置易错处

JENKINS搭建

JENKINS是基于容器的软件,只需download下它的war包,然后部署到服务器上即可。在运行起来的时候,会根据你相应的用户下建立相应的文件目录(.jenkins),类似于maven的.m2文件。这个文件目录中如下:
这里写图片描述
其实,这就是给我们存放相应用户数据的,我们知道jenkins是基于job的,所以会有job的目录。而且,不同的job会有相应的workspace的工作目录,进行存放从svn上download下来的代码。

  1. 若在项目构建完成后进行deploy到remote tomcat中需要安装相应的插件,一般到官方网站download下插件。放到jenkins解压的plugins目录下。
  2. 对远端tomcat的配置:
    • 对用户权限的配置(conf/tomcat-users.xml):
<role rolename="manager"/> 
    <role rolename="manager-script"/> 
    <role rolename="manager-gui"/> 
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>  
    <user username="admin" password="admin" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>
  • 对tomcat中能进行redeploy进行配置(conf/context.xml)
<Context antiJARLocking="true" antiResourceLocking="true">

对于这个配置至关重要,因为不然在jenkins进行重新部署到tomcat中会出现下面错误:

ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exception
org.codehaus.cargo.container.ContainerException: Failed to undeploy [C:\Users\mi\.jenkins\jobs\yinhedata\workspace\trunk\target\pcitc-fbd.war]
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:140)
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178)
    at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
    at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
    at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
    at hudson.FilePath.act(FilePath.java:918)
    at hudson.FilePath.act(FilePath.java:896)
    at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
    at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1040)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683)
    at hudson.model.Run.execute(Run.java:1779)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete [C:\Users\mi\tomcat\apache-tomcat-7.0.47-windows-x64\apache-tomcat-actual\webapps\ROOT]. The continued presence of this file may cause problems.

    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:566)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:480)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.undeploy(TomcatManager.java:420)
    at org.codehaus.cargo.container.tomcat.Tomcat7xRemoteDeployer.performUndeploy(Tomcat7xRemoteDeployer.java:62)
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:130)
    ... 17 more
org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete [C:\Users\mi\tomcat\apache-tomcat-7.0.47-windows-x64\apache-tomcat-actual\webapps\ROOT]. The continued presence of this file may cause problems.
  1. 在jenkins有了deploy到container容器插件之后,进行构建后操作的配置。
    • WAR/EAR files 这个配置项是根据其用户本身的workspace的相对路径而言,一般配置为:**/*.war
  2. 对于Root POM的配置:
    • 根据workspace相对路径来配置,因为从svn上download下来的代码会存放到workspace的目录下。那么,就将svn上pom文件的路径,配置到这来。
    • 当你自定义pom文件路径,若你在磁盘其他地方有个maven工程,而你将这个maven工程pom文件配置到这里,会出现一个bug,因为在构建的时候,maven会将构建好的war输出到你pom文件对应的target目录下面,而在进行deploy remote tomcat过程中,是能根据workspace的相对路径来找到相应war,而且这里特别恶心的是jenkins不会报任何错误。我想过将war的绝对路径给设好给deploy这个插件,但是结果是行不通的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值