我们有三种不同的maven2配置文件:prod,dev和test。一个人应该能够使用这三个配置文件中的任何一个构建,或者没有任何配置文件。换句话说,可以接受以下命令:
mvn install
mvn -Pdev install
mvn -Ptest install
mvn -Pprod install
如果有人写例如mvn -Ppord install
,则构建必须失败。这可能吗?
P.S。我知道http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html但似乎对于require属性,不允许在没有配置文件的情况下进行构建。
答案 0 :(得分:2)
我认为编写自定义强制规则应该是可能的。如果您查看this example,您会看到:
RuntimeInformation rti = (RuntimeInformation) helper.getComponent( RuntimeInformation.class );
此行为您提供有关当前运行时的信息,以及获取MavenProject和活动配置文件列表
MavenProject project = (MavenProject) helper.evaluate( "${project}" );
List profiles = new ArrayList( project.getActiveProfiles() );
如果活动配置文件列表不足,您可以获取所有配置文件 - 可以在帮助器插件的AllProfilesMojo.java中找到此代码的示例。