Maven,切换到不同的配置文件

时间:2012-11-15 14:33:17

标签: maven profile pom.xml activation

我遇到了部署到持续集成服务器的项目的正确maven配置文件配置问题。

在我的项目中,有些资源只需要在日常构建阶段的测试期间包含,而其他资源需要在夜间构建期间包含,并且它们永远不能同时包含在内,因为构建过程将失败,我可以通过同时激活一个配置文件在本地实现。

持续集成服务器按照maven命令运行:
- 每日建设:

mvn clean package -Pci -Dci

- 每晚构建

mvn clean install -Dmaven.test.failure.ignore -Pci,nightly -Dci -Dnightly

如您所见,每晚构建命令包括在每日构建命令中定义的maven变量和配置文件,这给我带来了一些麻烦,因为我想同时激活一个配置文件。

具体来说,我想要的是有3个独立的配置文件:
-my-pforile(默认激活,不在CI服务器上使用)
-ci-profile(仅在每日构建时激活,在CI服务器上使用)
-nightly-profile(仅在每晚构建时激活,在CI服务器上使用)

我怎样才能实现这一目标?我几乎尝试了一切。重新配置CI服务器不是一种选择。

1 个答案:

答案 0 :(得分:2)

当我必须使用不同的配置文件配置相同的版本时,使用Jenkins作为CI, 我通常会创建与配置文件一样多的构建,因此每个构建都使用正确的配置。

如果添加新版本不是一个选项,您可以尝试创建一个解决方法 使用像exec插件(http://mojo.codehaus.org/exec-maven-plugin/)之类的东西来下载 来自ftp(或其他东西)的资源。 您还必须创建一个cron作业(或等效的)来替换构建之间的正确资源: 在晚上,你把那里的资源放在那里,早上是当天的资源。

但考虑到这个过程多么繁琐,尝试添加可能会更好 一个新的构建。