これはできないという前の結論に同意します。前に見た推論は少し後ろ向きかもしれません。
プラグインは、プロファイルにあるプラグインによってではなく、コマンドラインでゴールを定義することによってアクティブ化されます (この質問の特定のケース)。
plugin.configuration
この方法でオーバーライドしようとしているのは、特定の実行の構成 ( ) ではなく、おそらくプラグインのデフォルト構成 ( ) ですplugin.executions.execution.configuration
。そして、それは私によってうまくいきます。しかし、問題はプロファイルを有効にすることです。
コマンドラインにあるのが目標だけである場合(例appengine:update
)、プロファイルをアクティブにする方法はありません。
プロファイルのアクティブ化に関する議論を読むと (私は過去に頑固に多くのことを行ってきました)、プロファイルのアクティブ化に関して多くの人々がまだ多くのことを望んでいることがわかります。実行された目標に基づいてプロファイルをアクティブ化することは、私がまだ出会った欲求でさえありません。
また、自分がやろうとしていることが本当に適切かどうか疑問に思うかもしれません。あなたは本当に目標を実行する必要がありますか? それともMaven ライフサイクルの恩恵を受けることができますか?
Maven ライフサイクルは実際には、フェーズを通過する、完了への (まっすぐな) パスです。特定の条件に基づいてこのパスを流用したい場合は、プロファイルが最適です。appengine:update
とが「どちらか/または」である場合appengine:devserver
(そうであると私は信じています)、パスを迂回しており、実際にはプロファイルを使用する必要があり、コマンドラインに少なくとも 2 つのもの、つまりフェーズと希望のプロファイル。1 つの典型的なケースと 1 つの例外的なケースがある場合、デフォルト プロファイルのアクティブ化 ( activeByDefault
) と別のプロファイルの明示的な選択 ( -P
) でそれぞれ表現できます。
mvn deploy // choose default profiles
mvn deploy -Pproduction // ignore default profiles
両方を実行したい場合 (例:devserver
統合テスト フェーズ中とデプロイ中)、ライフサイクルは、その後に関連付けられているupdate
プラグインを介して実行するように構成できます。コマンドラインにはただ 1 つのもの、つまりフェーズがあります。executions
phase