jenkins自动部署tomcat 7

我们正在试图与jenkins部署一个战争档案,但似乎没有发生。

该项目已经成功build立,我们正在使用Jenkins部署插件。 它configuration有以下选项:

自动部署插件

后续步骤设置为“无论生成结果运行”。

我检查了凭据是正确的,因为我可以访问我的浏览器中的经理页面。

这是Jenkins(Maven)输出的最后一部分:

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:24.506s [INFO] Finished at: Tue Feb 14 12:10:45 UTC 2012 [INFO] Final Memory: 22M/52M [INFO] ------------------------------------------------------------------------ channel stopped Finished: SUCCESS 

我也可以将WAR / EAR文件更改为不存在的东西,它不会给我错误,这有点奇怪。 我在这里做错了什么?

我遇到了同样的问题,在我的情况下,WAR文件的(相对)path不正确。 显然,如果你没有完全正确的(它需要是相对于工作区的根),那么部署插件将无声无息地失败。 在我的情况下,path是:

目标/ whatever.war

一旦解决了,我遇到了一个不同的问题,插件期望连接到Tomcat Manager的pipe理器/文本版本,而不是我通常默认configuration的manager / html版本。 你需要在你的tomcat-users.xml文件中有一行,如下所示:

<user username =“tomcat”password =“pencil”roles =“manager-script”/>

(除了你可能已经设置的“经理人”angular色之外)。

一旦做出这些更改,构build和部署就可以正常工作。

我使用Hudson Post Build Task插件对/ manager / text API执行curl

所提到的插件可以从Jenkinsconfiguration中的可用插件列表中select和安装。

一旦你安装了插件,你只需要启用“发布构build任务”,并添加下一行:

 curl -T - -u user:pass 'http://<tomcat-host>/manager/text/deploy?update=true&path=/<yourpath>' < <path_to_war_file> 

例如:

 curl -T - -u manager:123456 'http://localhost:8080/manager/text/deploy?update=true&path=/slim' < /target/dist/slim.war 

您也可以使用wget ,但是使用上面的命令logging输出,并查看部署是否有问题。


这是与/ manager /文字服务相关的文档

嗯你有使用货物插件? 那么,我也有你的configuration,Jenkins,maven和tomcat。 但是当我需要部署时,我只是简单地使用这个插件。 实际上已经有一段时间了,但是在jenkins你可以input命令提示行吗? 像mvn干净安装? 所以,你可以做的只是configuration你的POM的货物插件,然后将该行添加到您的jenkins:

 mvn cargo:deploy -Pintegration 

通过这种方式,我能够清理每天安装我的构build,并将其部署到Tomcat。 之后,我正在做我的resttesting。

对于它的价值,Jenkins的Deploy插件的最新版本似乎只需要基础url。 所以,对我来说,这是http://blah.com:8080

在此之前,我尝试了一系列其他选项,包括host-manager / html,host-manager / text

假设Jenkins正在找你的pom.xml进行编译。 在您的Jenkinsconfiguration中设置您的目标和选项来编译软件包 。 然后jenkins将尝试find你的战争文件,并部署它。 祝你好运。

我试图使用target / whatever.war的解决scheme,但它不工作,所以我试图使用* / .war,它的工作

您可以在jenkins上看到权威指南EN您需要指定在其他构build作业的工作区中find所需文件的位置,以及Jenkins应将其放置在当前项目工作区中的位置。 这可以是一个灵活的正则expression式(比如* / .war ,由构build作业生成的任何WAR文件),或者可以更精确(比如gameoflife-web / target / gameoflife.war)。

或通过部署到部署到Tomcat部署

为configurationJenkins页面的用户保留angular色manager-gui,admin-gui

例:-

  <tomcat-users> <user username="uname" password="pword" roles="manager-gui,admin-gui"/> </tomcat-users>