构建后操作时

WAR/EAR files

相对于工作空间的相对路径,也可以写“Ant-style GLOBs”表达式,如:**/*.war,“Ant-style GLOBs”暂时还没有弄明白是什么,经测试可以按如下形式写:source/target/*.war或source/target/yiqifa-adcenter-web.war,建议以“**/*.war”形式填写。

如本文中使用的Jenkins的工作空间为/data/jenkins,job名称为hyf-test-deploy-plugin,则这里的路径是相对/data/jenkins/hyf-test-deploy-plugin的(其中source是在job中指定的源码存放目录,视设置确定需不需要加上这个目录)

如果所有配置都正确,在Jenkins的控制台会看到如下图的提示:

deploy的输出

其中“hyf-test-deploy-plugin”为Jenkins的job名称。

Context Path

应用在Tomcat中的部署路径,如上图,部署后可以通过 http://172.16.18.192:8080/base-service  来访问部署的应用

add container

增加容器,一般选tomcat 7X就可以。这里的usernamepassword需要到tomcatconf文件夹中的tomcat-users.xml修改。tomcat URL就是你希望把war包部署到的tomcat所在IP地址,最后面不需要再加斜杠/

    deploy on failure

                发生错误的时候是否发布到tomcat

tomcat-users.xml

中的用户名及密码默认是注释掉的,所以需要删除注释,也可以直接复制以下代码到</tomcat-users>之前。如果只是删除注释的话好像部署不会成功,还需要增加manager开头的三个role才可以。

1<role rolename="manager-gui"/> 
2<role rolename="manager-script"/> 
3<role rolename="manager-jmx"/> 
4<role rolename="manager-status"/> 
5<user username="tomcat" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>


Manager user name/Manager password

在“修改Tomcat管理用户配置”中配置好的用户名和密码

Tomcat Url

运程Tomcat的访问路径,如上图中的http://172.16.18.192:8080,插件通过这个地址将应用的war/ear包上传到Tomcat的webapps目录下

Add Container

在这里可以继续增加其他的容器,这样就可以实现将应用同时部署到不同的容器中。

注意事项

运行Job进行部署前要先启动运程机上的WEB容器,插件需要通过容器提供的接口将war包发布到容器下

如果遇到“Deployed application at context path /xxx but context failed to start”这样的异常请到远程机的WEB容器下查看日志

如果遇到“Connection refused”的异常请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档

如果遇到“403/401 for URL: http://172.16.18.192:8090/manager/text/list”,请检查远程机上是否存在Job中的Manager user name处添加的用户以及权限和密码设置是否正确


如果,此时我的


WAR/EAR files
的参数值为trunk/target/material-library-0.0.1-SNAPSHOT.war

,test是我建立的Jenkins部署项目的名称,之后的就应该是我所需要的相对地址了


自动化结果打印

Waiting for Jenkins to finish collecting data
[JENKINS] Archiving C:\Users\wpf\.jenkins\workspace\test\trunk\pom.xml to com.root.wt/material-library/0.0.1-SNAPSHOT/material-library-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war to com.root.wt/material-library/0.0.1-SNAPSHOT/material-library-0.0.1-SNAPSHOT.war
channel stopped
Deploying C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war to container Tomcat 7.x Remote
  Redeploying [C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war]
  Undeploying [C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war]
  Deploying [C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war]
Finished: SUCCESS



有个疑惑:就是官网下载的tomcat中webapps文件下的都不能删除,一旦删除,就无法打包完成 了?很奇怪。

会报

Deploying C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war to container Tomcat 7.x Remote
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [C:\Users\wpf\.jenkins\workspace\test\trunk\target\material-library-0.0.1-SNAPSHOT.war]
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:193)
	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:996)
	at hudson.FilePath.act(FilePath.java:974)
	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:779)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1067)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
	at hudson.model.Run.execute(Run.java:1753)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:544)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:405)
无法部署

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐