2011-11-07 8 views
16

ここではいくつかのMavenのコンセプトの「木々の森」を見るのに苦労しています。私は、Mavenのはvalidateで始まる、いわゆる「ビルドライフサイクルフェーズ」のスルーで事前に構成されていていることを理解し、そしてtestdeployで終わります。Maven:ライフサイクルフェーズと目標の関係

私はあなたが(直線的に他のターゲットに依存することができた)ターゲットに主要なビルド段階を組織したAntからMavenのに来ています、そしてあなたは、手続きタスクにあなたの目標を分解する。 Mavenはこれをサポートしているようですが、の目標という形でサポートされています。

私の質問(私はターゲットとタスクの観点から考えると慣れています)は、これらのライフサイクルフェーズ(package,verifyなど)はどのように目標に関連していますか?どのフェーズでどの目標を実行するかを設定する必要がありますか、これはMavenによって自動的に何らかの形で行われますか?

または、目標はどのフェーズに属しているのか事前定義されていますか?

私はちょうど1つの注文の目標は、彼らや彼らの組織のために働くカスタムビルドを作成する方法を見ていませんよ。

ありがとうございました!

+0

_Mavenするにはを参照してください[私の答え](http://stackoverflow.com/a/30953905/1744774): Lifecycle vs. Phase vs. Plugin vs. Goal_については、名前付きエンティティのすべての点について説明します。 –

答えて

11

多くのMavenプラグインは特定の目標(mojo)を特定のライフサイクルフェーズにバインドします。

など。 documentation of maven-jar-plugin:jar goalを探してください。それは言う:

ライフサイクルフェーズ:パッケージにデフォルトでバインドします。

また、ライフサイクル自体は、各段階で実行する必要があるツールを指定しています。デフォルトのパッケージングタイプの場合、これらのツールはMavenによって事前定義されており、ここでは--- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindingsで説明されています。 >http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/ -

しかし、この例では、結合完全カスタムライフサイクルを作成する方法を示しています。ご覧のように、プラグインの目標の任意の組み合わせを特定のライフサイクル段階にバインドすることができます。

最後に、ではなく、少なくとも、あなたのポンポンファイルのbuild/plugins要素から手動でプラグインの実行を追加することができます。これを行うと、特定のフェーズのプラグインがFIFO順に実行されます。

また、それはあなたが綴らすべてのこれらのデフォルト値を使用してEffective POMを参照するのを助けることができます。 IDEの申し出のMavenプロジェクトのために、このオプションが、あなたは、コマンドラインからの効果的なPOMを見ることができます多く:

mvn help:effective-pom 
+0

答えと役に立つリンクに感謝します! – IAmYourFaja