在正常开发过程中,我有一个需要执行的构建功能。在发布期间,该构建功能需要替换为发布等效项(在这种情况下是 Proguarding 而不是复制)。
我曾认为我可以使用 2 个配置文件(一个 DevelopmentProfile 和一个 ReleaseProfile)以及 DevelopmentProfile activeByDefault 到达那里。
例如
<profiles>
<profile>
<id>DevelopmentProfile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<developmentBuild>true</developmentBuild>
<releaseBuild>false</releaseBuild>
</properties>
</profile>
<profile>
<id>ReleaseProfile</id>
<properties>
<developmentBuild>false</developmentBuild>
<releaseBuild>true</releaseBuild>
</properties>
</profile>
</profiles>
并通过 release-plugin releaseProfiles 属性打开 ReleaseProfile 并通过 releaseProfiles 属性关闭 ReleaseProfile
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<releaseProfiles>ReleaseProfile,!DevelopmentProfile</releaseProfiles>
</configuration>
</plugin>
考虑到这篇关于“停用配置文件”的文章http://maven.apache.org/guides/introduction/introduction-to-profiles.html以及 release-plugin 的源代码只是使用提供的字符串。
但这似乎不起作用。我怀疑是因为发布插件预先添加了活动配置文件,这可能会覆盖配置文件停用。
任何状况之下。有没有另一种方法可以在发布期间停用配置文件。或者以其他方式确保在任何时候只有这 2 个配置文件中的一个处于活动状态。
而且我对涉及我传递系统属性以显式激活配置文件的解决方案不感兴趣,因为它们不够强大,无法承受这里的工作负载。