Maven,切换到不同的配置文件
Posted
技术标签:
【中文标题】Maven,切换到不同的配置文件【英文标题】:Maven, switching to a different profile 【发布时间】:2012-11-04 04:17:03 【问题描述】:我对部署到持续集成服务器的项目的正确 maven 配置文件配置有疑问。
在我的项目中,有些资源只需要在日常构建阶段的测试中包含,而另一些则需要在夜间构建中包含,并且它们永远不能同时包含,因为构建过程会失败,我可以通过同时激活一个配置文件在本地实现。
持续集成服务器运行以下 maven 命令: - 在每日构建期间:
mvn clean package -Pci -Dci
-在夜间构建期间
mvn clean install -Dmaven.test.failure.ignore -Pci,nightly -Dci -Dnightly
如您所见,nightly build 命令包括在 daily build 命令中定义的 maven 变量和配置文件,这给我带来了一些麻烦,因为我只想同时激活一个配置文件。
具体来说,我想要的是拥有 3 个独立的个人资料: -my-pforile(默认激活,不用于 CI 服务器) -ci-profile(仅在每日构建时激活,在 CI 服务器上使用) -nightly-profile(仅在夜间构建时激活,在 CI 服务器上使用)
我怎样才能做到这一点?我几乎尝试了一切。重新配置 CI 服务器不是一种选择。
【问题讨论】:
【参考方案1】:当我必须使用不同的配置文件配置相同的构建时,使用 Jenkins 作为 CI, 我通常创建与配置文件一样多的构建,因此每个构建都使用正确的配置。
如果添加新版本不是一个选项,您可以尝试创建一个解决方法 使用类似 exec 插件 (http://mojo.codehaus.org/exec-maven-plugin/) 来下载 来自 ftp(或其他)的资源。 您还必须创建一个 cron 作业(或等效的)来替换构建之间的正确资源: 晚上你把晚上的资源放在那里,早上把白天的资源放在那里。
但考虑到这个过程会有多麻烦,可能最好尝试添加 一个新的版本。
【讨论】:
+1 获取有关不同配置文件的不同构建的注释。对于集成测试也很重要。以上是关于Maven,切换到不同的配置文件的主要内容,如果未能解决你的问题,请参考以下文章