Jenkins:如何检查来自Nexus的神器和Tomcat上的Deploy-

时间:2012-08-07 14:41:01

标签: maven deployment jenkins

我想要建立Jenkins管道。 第一阶段完成,代码编译,测试,检查并部署到Nexus。

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

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

有没有maven或jenkins插件?

非常感谢,

帕特里克

5 个答案:

答案 0 :(得分:18)

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

enter image description here

你可以使用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