如何从Nexus自动部署战争到Tomcat?
我有一个maven web项目,可以在Nexus上成功构建和部署(SNAPSHOT和发布版本)。我想知道Nexus中是否有功能/插件,它会选择已发布的战争并自动部署在远程Tomcat上?
我知道您可以使用maven-tomcat-plugin将战争部署到远程Tomcat,但是想知道是否有替代解决方案。
请指导。
答案 0 :(得分:9)
通常,您使用像Jenkins这样的CI工具来运行将War文件发布到Nexus的Maven构建版。然后,Nexus将被您用于将战争推向目标tomcat环境的任何工具使用:
有很多很多选择。
从Jenkins运行构建后的SSH任务,在目标tomcat服务器上执行类似的操作:
curl "http://myrepo/nexus/service/local/artifact/maven/redirect?r=releases&g=myorg&a=myapp&v=1.1&e=war" \
-o /usr/local/share/tomcat7/webapps/myapp.war
service tomcat7 restart
我的偏好是使用Rundeck进行部署,因为它有Nexus plugin,提供了方便的可用版本下拉菜单。
Jenkins还有一个Rundeck plugin可用于协调CI流程,Jenkins执行构建,移交到Rundeck进行部署,然后进行Jenkins回调以运行集成测试。
我还使用厨师,可以用拉动的方式自动部署软件。
artifact食谱直接支持Nexus,而application_java食谱使用来自网址的更通用的#34;"方法也很有效。
.. ..
列表继续,所以我希望这会有所帮助。
答案 1 :(得分:0)
我们使用UrbanCode进行部署自动化,从Artifactory / Nexus检索战争并部署到目标服务器。
答案 2 :(得分:0)
我使用了Nexus Rest-API,这些端点将工件下载到Jenkins工作区。
为了部署Snapshot&发布到Tomcat,我们可以创建一个Jenkins参数化作业并将参数传递给REST端点,也可以部署到服务器,如Tomact" Deploy WAR / EAR" Jenkins插件会有所帮助。
我们可以参数化端点并将其用作"构建"与"执行Shell脚本"一起步骤构建选项。
wget --user=${UserName} --password=${Password} "http://192.168.49.131:8080/nexus/service/local/artifact/maven/redirect?r=releases&g=${GroupId}&a=${ArtifactId}&v=${Version}&e=${TypeOfArtifact}" --content-disposition
Nexus的实际端点如下所示。
wget --user=admin --password=admin123 "http://localhost:8080/nexus/service/local/artifact/maven/redirect?r=snapshots&g=org.codezarvis.artifactory&a=hushly&v=0.0.1-SNAPSHOT&e=jar" --content-disposition
wget --user=admin --password=admin123 "http://localhost:8080/nexus/service/local/artifact/maven/redirect?r=releases&g=org.codezarvis.artifactory&a=hushly&v=0.0.5&e=jar" --content-disposition
感谢
-Sudarshan