詹金斯自动部署雄猫 7

2022-08-31 17:13:11

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


答案 1

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

目标/什么的.战争

修复后,我遇到了一个不同的问题,因为插件希望连接到Tomcat管理器的管理器/文本版本,而不是我通常默认配置的管理器/ html版本。您需要在 tomcat 用户.xml文件中显示一行,如下所示:

<用户用户名=“tomcat” 密码=“pencil” roles=“manager-script”/>

(这是对您可能已经设置的“经理gui”角色的补充。

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


答案 2

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


以下是与 /manager/text 服务相关的文档


推荐