为不同的部署场景设置maven pom文件
Posted
技术标签:
【中文标题】为不同的部署场景设置maven pom文件【英文标题】:set up maven pom file for different deployment scenarios 【发布时间】:2012-02-23 17:18:42 【问题描述】:对 Maven 非常陌生。我有一个 pom 文件,我可以用它来构建和部署我的 j2ee 项目并且它工作正常。 (使用 Maven 3)。
我想知道如何在同一个 pom 中设置两种不同的部署方案——一种在我的开发环境中构建和部署,另一种在测试环境中构建和部署。
两者之间的唯一区别(目前)将是:
dev-build 不进行 SCM 检出 dev-build 部署到 tomcat 服务器 A
测试构建是否进行 SCM 检出 测试构建部署到 tomcat 服务器 B
maven 中的哪些机制最适合以这种方式创建两种不同的部署场景。我已经看到提到的配置文件 - 这是我应该使用的 - 如果配置文件是答案,例如,我如何为一个配置文件包含一个 scm 结帐而不为另一个配置文件。
感谢您的任何回复。
【问题讨论】:
【参考方案1】:这听起来绝对是配置文件解决方案的最佳选择。每个配置文件都有其特定的构建步骤、插件、属性等。配置文件可以定义激活部分以确定配置文件何时处于活动状态。激活可以基于操作系统、JDK 版本或环境变量等多种因素。对于显式控制,可以使用 -P 命令行选项打开和关闭配置文件:
mvn -P profile1,!profile2
该命令激活 profile1 并停用 profile2。
【讨论】:
我不认为您可以创建配置文件以不从 SCM 结帐。你确定吗? 假设结帐是使用 Maven SCM 插件完成的,在需要结帐的配置文件中配置插件。对于不需要的配置文件,省略插件配置。 配置文件方法似乎适合我想要的。我对它们进行了更多阅读,并让 tomcat deploy 使用不同的配置文件。我正在使用插件做的 scm,所以我认为它应该可以工作但还没有尝试过,我仍然对 scm 插件配置有所了解,从命令行完成了部分工作,需要在 pom 中正确处理。 我记得,您还可以通过 settings.xml 激活配置文件(Maven 安装中的那个,或者用户目录中的那个)。这可以用于例如始终在开发人员的机器上进行开发构建,并始终在 CI 服务器上进行测试构建。 快速更新 - 我用配置文件完成了这一切(scm 目标是使用上面建议的 scm 插件完成的)以上是关于为不同的部署场景设置maven pom文件的主要内容,如果未能解决你的问题,请参考以下文章