20

我想建立一个詹金斯管道。第一阶段完成,代码编译、测试、检查并部署到 Nexus。

我现在想在管道上进行第二阶段,从 Nexus 签出战争并部署在 tomcat 上。

实际上我已经集成了 maven-tomcat 插件来部署在 Tomcat 上。我的问题是如何查看最新版本的战争?

有没有 maven 或 jenkins 插件呢?

非常感谢,

帕特里克

4

5 回答 5

20

您的二进制存储库管理器 (Nexus) 应该理想地在您的整体架构中占据以下位置:

在此处输入图像描述

您可以使用 Jenkins 作为您的配置工具,但理想情况下,它应该启动某种进程,将工件直接从 Nexus 部署(如果没有别的,它会更有效)。

这比听起来容易得多。例如,可以从 shell 脚本调用 Nexus REST API 以下载任何所需的工件修订版。例如:

$CATALINA_HOME/bin/shutdown.sh
curl -o $CATALINA_HOME/webapps/myfile.war http://myrepo.com/service/local/artifact/maven/redirect?r=releases&g=com.myorg&a=myfile&v=1.1.1&e=war
$CATALINA_HOME/bin/startup.sh

最后,也许您可​​能希望考虑使用专用系统来管理您的部署?我一直在玩的一个有趣的解决方案是rundeck,它有一个Jenkins插件。我真的很喜欢 rundeck,因为它的简单性是它与 Jenkins 共有的一个特点。还有一个Nexus插件,使 rundeck 能够提供符合部署条件的工件的下拉列表。

于 2012-08-07T19:09:57.900 回答
3

请参阅https://github.com/cescoffier/puppet-nexus/tree/master/files上的 download-artifact-from-nexus.sh 脚本

就我而言,我将其修改为使用 wget 而不是 curl。出于某种原因,curl 对我不起作用。

于 2013-03-04T17:37:26.243 回答
0

我建议你为此创建一个新的 pom。这样你就不会被詹金斯束缚。您无需从 nexus 显式检出工件(请注意,这在 maven 语音中称为从存储库下载)。您可以在 tomcat maven 插件中指定不同的战争文件位置。请参阅文档。要从存储库下载最新版本,请参阅此问题的答案。

于 2012-08-07T14:57:34.860 回答
0

下面的语法对我有用。

wget --user=admin --password=admin http://192.168.0.3:8081/repository/simpleapp-snapshot/in/javahome/simple-app/3.0.0-SNAPSHOT/simple-app-3.0.0-20210513.143540-1.war

于 2021-05-14T13:27:09.433 回答
0

我用 curl 遇到了同样的问题,我解决了它购买添加参数 -L,以便 curl 将遵循重定向下载工件,wget 默认遵循重定向。

于 2020-03-18T17:02:36.927 回答