通常の開発中に、実行する必要がある特定のビルド機能があります。リリース時に、そのビルド関数をリリースに相当するものに置き換える必要があります (この場合、コピーではなく Proguarding)。
私は、DevelopmentProfile が activeByDefault の 2 つのプロファイル、DevelopmentProfile と ReleaseProfile を使用してそこにたどり着くことができるかもしれないと考えました。
例えば
<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 つのプロファイルのうちの 1 つだけが常にアクティブであることを確認してください。
また、システム プロパティを渡してプロファイルを明示的にアクティブ化するソリューションには興味がありません。これらのソリューションは、このあたりのワークロードに耐えられるほど堅牢ではないからです。