Jenkins自动部署tomcat 7

时间:2012-02-14 12:54:55

标签: java tomcat maven jenkins tomcat7

我们正在尝试使用Jenkins部署war文件,但似乎没有任何事情发生。

项目已成功构建,我们正在使用Jenkins部署插件。它配置有以下选项:

auto deploy plugin

发布步骤设置为"无论构建结果如何都会运行"。

我已检查过凭据是否正确,因为我可以在浏览器中访问管理器页面。

以下是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文件更改为不存在的内容,并且它不会给我错误,这有点奇怪。我在这里做错了什么?

7 个答案:

答案 0 :(得分:104)

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

目标/ whatever.war

一旦修复了,我遇到了一个不同的问题,即插件希望连接到Tomcat Manager的管理器/文本版本,而不是我通常默认配置的manager / html版本。您需要在tomcat-users.xml文件中添加一行,如下所示:

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

(这是您可能已经设置的“manager-gui”角色的补充。)

完成这些更改后,构建和部署工作正常。

答案 1 :(得分:8)

  

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

     

可以选择提到的插件   从Jenkins配置中的可用插件列表中安装。

安装好插件后,只需启用“发布后任务”并添加下一行:

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 ,但是使用上面的命令记录输出并查看部署是否存在问题。


以下是与{em> / manager / text 服务相关的documentation

答案 2 :(得分:1)

你曾经使用过Cargo插件吗?好吧,我也有和你一样的配置,Jenkins,maven和tomcat。但是当我需要部署时,我只是使用该插件。实际上已经有一段时间了,但是在Jenkins你能够输入命令提示行吗?像mvn clean install?那么,你可以做的只是为你的货物插件配置你的pom,然后将该行添加到你的Jenkins:

mvn cargo:deploy -Pintegration

通过这种方式,我能够每天清理安装我的构建,并将它们部署到Tomcat。之后我正在做我的休息测试。

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

假设Jenkins正在找你的pom.xml进行编译。将Jenkins配置中的目标和选项设置为编译包。然后Jenkins将尝试找到您的war文件并进行部署。 祝你好运。

答案 5 :(得分:0)

我尝试使用target / whatever.war的解决方案 但它不起作用 所以我尝试使用* / .war并且它的工作

你可以在詹金斯看到权威指南EN 您需要指定在其他构建作业的工作空间中找到所需文件的位置, 以及Jenkins应该将它们放在当前项目的工作区中。这可以 一个灵活的正则表达式(例如 * / .war ,用于构建生成的任何WAR文件 工作),或者它可以更加精确(例如gameoflife-web / target / gameoflife.war)。

Deploy to Tomcat with pluging DEPLOY

答案 6 :(得分:0)

为配置Jenkins页面的用户保留角色manager-gui,admin-gui

例如: -

 <tomcat-users>

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

 </tomcat-users>