【问题标题】:Maven - Separating Deployment & ProjectMaven - 分离部署和项目
【发布时间】:2012-08-31 03:40:42
【问题描述】:
将 Maven 部署配置与构建配置分开的“最佳实践”方式是什么?
我有一个由 Jenkins 构建的 war 项目。我希望 Jenkins 将其部署到 Elastic Beanstalk,但是目前可用的最佳解决方案是使用 beanstalk-maven-plugin。
我不确定 POM.xml 是否包含有关部署的信息;毕竟,在构建时.war 可能会在任何地方结束。
在这种情况下,是否有某种方法可以使用 Maven 模块将 beanstalk-maven-plugin 配置存储在与实际软件项目不同的 POM 中?
【问题讨论】:
标签:
java
maven
jenkins
hudson
amazon-elastic-beanstalk
【解决方案1】:
我想到了三件事:
一个。我不确定(我承认我有点忙于想出 0.2.7-RC7),但我认为 Java 支持 Elastic Beanstalk 配置文件。
所以分开可能是个好主意(我承认在 Beanstalker 中管理配置很无聊)
b.另一种选择是在 maven-war-plugin 的覆盖功能中使用战争覆盖,并创建一个取决于您的其他战争的战争。
就我个人而言,如果您问的话,我确实在 Maven 中有一个单独的部署配置文件,并且该功能通常会派上用场
【解决方案2】:
我认为您必须找到解决方案。
- 只需将
beanstalk-maven-plugin 定义添加到您的常规pom.xml。配置可以存储在单独的属性文件中,也可以通过命令行中的系统属性提供(-D 选项)。将beanstalk 目标添加到 Jenkins 中的 maven 命令行。因此,每个构建都将部署在 beanstalk 上。或者,您可以在 Jenkins 中定义另一个项目,该项目只运行部署而无需编译。您可以按计划或通过 Jankins 中的项目依赖项运行此部署项目。
- 再创建一个 Maven 项目。它只会运行 beanstalk 插件。我个人认为这样做没有太大的优势。