我想建立一个詹金斯管道。第一阶段完成,代码编译、测试、检查并部署到 Nexus。
我现在想在管道上进行第二阶段,从 Nexus 签出战争并部署在 tomcat 上。
实际上我已经集成了 maven-tomcat 插件来部署在 Tomcat 上。我的问题是如何查看最新版本的战争?
有没有 maven 或 jenkins 插件呢?
非常感谢,
帕特里克
我想建立一个詹金斯管道。第一阶段完成,代码编译、测试、检查并部署到 Nexus。
我现在想在管道上进行第二阶段,从 Nexus 签出战争并部署在 tomcat 上。
实际上我已经集成了 maven-tomcat 插件来部署在 Tomcat 上。我的问题是如何查看最新版本的战争?
有没有 maven 或 jenkins 插件呢?
非常感谢,
帕特里克
您的二进制存储库管理器 (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 能够提供符合部署条件的工件的下拉列表。
请参阅https://github.com/cescoffier/puppet-nexus/tree/master/files上的 download-artifact-from-nexus.sh 脚本
就我而言,我将其修改为使用 wget 而不是 curl。出于某种原因,curl 对我不起作用。
下面的语法对我有用。
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
我用 curl 遇到了同样的问题,我解决了它购买添加参数 -L,以便 curl 将遵循重定向下载工件,wget 默认遵循重定向。