如何使用 Maven 从 Nexus 下载进行部署

Posted

技术标签:

【中文标题】如何使用 Maven 从 Nexus 下载进行部署【英文标题】:How to use Maven to download from Nexus for a deployment 【发布时间】:2012-11-08 20:22:15 【问题描述】:

我对 Maven 有点陌生,但我们使用 Maven 和 Tomcat7 插件成功地使用 Bamboo 部署到 Tomcat。但是我想要一个单独的 Bamboo 构建计划,它只从 Nexus 部署一个战争包,而不是先重新构建它。看起来我可以让战争成为一个依赖,但是这个相同的 POM 构建包,所以我不希望在调用构建目标的情况下下载它。

【问题讨论】:

我忘了提到,Bamboo 会影响这一点,因为它会为每个新计划创建一个构建目录。因此,对于新的“部署”计划,构建并不容易。 【参考方案1】:

查看maven-dependency-plugin。让项目抓取现有的战争神器并将其推送到 tomcat 应该很容易。

【讨论】:

Maven 主要是一个构建工具。必须注意不要将其过度用于部署等项目。例如,除非您使用像“cargo”这样的插件,否则您的解决方案将需要在目标机器上运行 Maven。我会提交更简单的 SSH 到目标机器,只需使用 wget 或 curl 等命令直接从 Maven 存储库下载所需的版本。 同意。但它也为其他与 CM 相关的活动带来了好处,包括打包的统一性、调用约定等。部署是否是构建的一部分实际上取决于您正在使用它做什么(即部署到测试系统以便运行 CI 集成测试可以说是构建工作流程的一部分)。 如果您还使用 Maven 进行生产部署,那么我可以同意。在实践中,这种情况很少发生。我建议阅读以下博客,其中讨论了在所有环境中标准化部署管道的必要性:zkybase.org/blog/2012/11/10/…【参考方案2】:

Nexus 有一个非常丰富的 REST API,您可以通过简单的 http 获取和副本轻松地使用它来编写部署脚本。但是,如果你真的觉得你想使用 Maven ptyx 方法应该可以工作......虽然它看起来有点矫枉过正。如果您投入精力进行部署,我会考虑使用 Chef 或 Puppet,并使用它们从 Nexus 中提取并推送到您的生产(或 QA 或任何服务器)。

【讨论】:

查看以下 Sonatype 链接,例如使用 Nexus REST API 的 Bash 脚本:sonatype.com/people/2011/01/… 感谢马克添加链接。

以上是关于如何使用 Maven 从 Nexus 下载进行部署的主要内容,如果未能解决你的问题,请参考以下文章

部署maven及Nexus私服

Window下部署Maven Nexus

使用Nexus创建Maven私有仓库

自动化部署之Maven的私有仓库Nexus

使用nexus搭建maven私服

通过 Maven 将整个目录上传/下载到 Nexus