2013-09-05 30 views
19

モジュールpomを変更せずに親pomからモジュールプロパティをオーバーライドすることはできますか?例えばMavenの親POMからのモジュールプロパティのオーバーライド

モジュールポンポン(私は全くそれを変更することはできません):

<properties> 
    <someProperty>some value to be replaced</properties> 
</properties> 

親ポンポン:

<properties> 
    <someProperty>strongValue</someProperty> <!-- some magic here --> 
</properties> 

効果的なモジュールポンポン:

<properties> 
    <someProperty>strongValue</someProperty> 
</properties> 

はいの場合はどのように達成するのですか?

答えて

8

これを行うには、コマンドラインでプロパティを定義するしかありません。 mvn -DsomeProperty=strongValue <mvn goals/phases here>

親で定義されたプロファイルを試してみることもできます。私はそれが役に立たないと思う。

+1

thxだが、私はそれを親POMからオーバーライドする必要がある。コマンドラインではない(質問のとおり) – zacheusz

+1

私はあなたが運が悪いと思う。 – user944849

+1

親のプロファイルでプロパティを定義し、そのプロファイルを有効にしても、子プロジェクトのプロパティはアクティブ化されていないようです。 –

8

いいえ、できません。考えられるのは、値を上書きすることができない場合は、プロパティを使用しないことです。他のオプションがない場合は、プロパティが期待値と異なる値を持つ場合は、ビルドを中断するhttp://maven.apache.org/enforcer/enforcer-rules/requireProperty.htmlで強制的に実行することをお勧めします。

+1

あなたはどういう意味ですか、できませんか?私たちはいつもこれを行い、それは機能します。 もちろん、親のpomプロパティを上書きすることもできます。ちょうどあなたが私を疑わせたので、私はちょうどそれをしたプロジェクトのために私の親のポンをチェックしました。それはうまくいく。私の効果的なpomは、オーバーライドされた値を示しています。 – Lawrence

+2

私はあなたがその質問を誤解していると思います。それを次のようにしてみてください:プロパティが最終的なもの(Javaのように)で、子供がオーバーライドできないようにすることはできますか?この質問に答えは「いいえ」です。 –

関連する問題