こんにちは私はこのようなことを達成しようとしています:
親のpomで、私は持っています
<profile>
<activation>
<property>
<name>Compile</name>
<value>${project.artifactId}</value>
...
そのため、親pomの下でmvn -DCompile=mod1 install
を実行すると、プロファイル設定はモジュール1にのみ適用され、他の設定は適用されません。
同様に、私が持っている場合
<profile>
<activation>
<property>
<name>Compile</name>
<value>${project.packaging}</value>
...
次に、親pomの下でmvn -DCompile=war install
を実行すると、プロファイル設定はwarとしてパックされるものにのみ適用され、jarやpomには適用されません。
試しましたが、期待どおりに動作しませんでした。私は何かを逃しましたか?助けてください。
P.S.私はこの方法にのみ興味があるので、回避策を提案する必要はありません。その場合、理由があって不可能であると単純に答えてください。ありがとうございました
それ以来、動作しません...
はじめに:
そして、なぜそれが親から子供まで機能しないのか:
多くの人があなたの前にここに行って失敗しました。
あなたが本当に何をしようとしているのか不思議に思うかもしれません。同じソースプロジェクトから異なるアーティファクトを構築していますか?おそらく、物事を処理するためにさらにいくつかのMavenモジュールが必要です。
はい、env
変数などの1つまたはさまざまなパラメータに応じてプロファイルをアクティブ化できます。
<project>
...
<profiles>
<profile>
<id>development</id>
<activation>
<property>
<name>!environment.type</name>
</property>
</activation>
</profile>
</profiles>
</project>
Xに応じて、アセンブリプラグインを使用して魔法をかけることができるものとは異なるパッケージを作成しようとしている場合は、 http://maven.Apache.org/plugins/maven-Assembly-plugin/
アクティベーションプロパティの詳細
Maven 3.0以降、POMのプロファイルは、settings.xmlのアクティブなプロファイルのプロパティに基づいてアクティブ化することもできます。
ここにあるサンプルを確認できます:
http://maven.Apache.org/guides/introduction/introduction-to-profiles.html