【问题标题】:How can I automatically deploy a war from Nexus to Tomcat?如何自动将战争从 Nexus 部署到 Tomcat?
【发布时间】:2014-04-29 11:12:09
【问题描述】:

如何自动将战争从 Nexus 部署到 Tomcat?

我有一个在 Nexus 上成功构建和部署(SNAPSHOT 和发布版本)的 maven web 项目。我想知道 Nexus 中是否有功能/插件可以选择已发布的战争并自动部署在远程 Tomcat 上?

我知道您可以使用 maven-tomcat-plugin 将战争部署到远程 Tomcat,但想知道是否有替代解决方案。

请指导。

【问题讨论】:

  • JMX 会在这里帮忙。
  • @parsaporahmad JMX 有什么帮助?它用于窥探 JVM 内部......与部署无关。

标签: java maven tomcat nexus


【解决方案1】:

通常,您会使用 Jenkins 等 CI 工具来运行 Maven 构建,将您的 War 文件发布到 Nexus。然后,您使用的任何工具都会使用 Nexus 将 War 推送到目标 tomcat 环境:

有很多很多的选择。

Jenkins 发布构建 SSH 脚本

从 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 回调以运行集成测试。

厨师

我还使用可用于以拉取方式自动部署软件的 chef。

artifact 食谱直接支持 Nexus,而 application_java 食谱使用更通用的“从 URL 拉取”方法,也很有效。

.. ..

列表还在继续,所以我希望这会有所帮助。

【讨论】:

【解决方案2】:

我们使用 UrbanCode 进行部署自动化,从 Artifactory/Nexus 检索战争并部署到目标服务器。

【讨论】:

    【解决方案3】:

    我使用了 Nexus Rest-API,这些端点将工件下载到 Jenkins 工作区。

    为了将 Snapshot & Release 部署到 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
    

    谢谢
    -苏达山

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 2020-10-16
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多