Windows上部署Jenkins遇到的问题
构建后操作时WAR/EAR files相对于工作空间的相对路径,也可以写“Ant-style GLOBs”表达式,如:**/*.war,“Ant-style GLOBs”暂时还没有弄明白是什么,经测试可以按如下形式写:source/target/*.war或source/target/yiqifa-adcenter-web.war,建议以“**/*.war”形式填写。如本文中使用的
构建后操作时
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就可以。这里的username与password需要到tomcat的conf文件夹中的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 |
,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)无法部署
更多推荐
所有评论(0)