我想要建立Jenkins管道。 第一阶段完成,代码编译,测试,检查并部署到Nexus。
我现在想在管道上进行第二阶段,从Nexus检查战争并部署在tomcat上。
实际上我已经集成了maven-tomcat插件来部署在Tomcat上。 我的问题是如何查看战争的最新版本?
有没有maven或jenkins插件?
非常感谢,
帕特里克
答案 0 :(得分:18)
您的二进制存储库管理器(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共享。还有一个plugin用于Nexus,它使rundeck能够提供符合部署要求的artfacts下拉列表。
答案 1 :(得分:2)
请参阅https://github.com/cescoffier/puppet-nexus/tree/master/files
上的download-artifact-from-nexus.sh脚本就我而言,我将其修改为使用wget而不是curl。出于某种原因,卷曲对我不起作用。
答案 2 :(得分:0)
我建议你为此创建一个新的pom。这样你就不会受到詹金斯的束缚了。 您无需从nexus明确检出工件(请注意,这称为maven语音库中的下载)。您可以在tomcat maven插件中指定不同的war文件位置。请参阅documentation。要从存储库下载最新版本,请参阅answers to this question.
答案 3 :(得分:0)
我在curl上遇到了同样的问题,我通过添加参数-L解决了它,因此curl将遵循重定向下载工件,而wget默认遵循重定向。
答案 4 :(得分: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