Mavenのビルドライフサイクル、フェーズ、およびゴール
メイヴンのビルドライフサイクルとは何ですか?
私たちがMavenプロジェクトをビルドするときは、プロジェクトのpom.xmlの設定とコマンドラインオプションに基づいて一連の明確に定義されたタスクが実行されます。この標準的なタスクセットがMavenのビルドライフサイクルを作成します。明確に定義されたライフスタイルの利点は、プロジェクトをコンパイル、ビルド、インストール、デプロイするために覚えなければならないコマンドのセットが少ないということです。推奨読み物: 20以上のMavenコマンドとオプション(Cheat Sheet)
組み込まれたビルドライフサイクルを用意しました。
組み込みのビルドライフサイクルには3つあります。
-
- デフォルト: プロジェクトのビルドと展開を処理します。
-
- クリーン: プロジェクトのクリーニングを処理します。
- サイト: プロジェクトサイトのドキュメンテーションの作成を処理します。
Mavenのビルドフェーズ
Mavenのビルドライフサイクルは、ビルドフェーズと呼ばれる一連のステージを経ます。たとえば、デフォルトのライフサイクルは、次のようなフェーズで構成されています。
- validate
- compile
- test
- package
- verify
- install
- deploy
ビルドフェーズは順次実行されます。Mavenのビルドコマンドを実行する際には、実行するフェーズを指定します。指定されたフェーズより前のどのマベンビルドフェーズも実行されます。たとえば、mvn packageを実行すると、プロジェクトのvalidate、compile、test、packageフェーズが実行されます。
メイブンのビルドゴールズ
ビルドフェーズはゴールのセットで構成されます。Mavenのゴールは、プロジェクトのビルドと管理に貢献する特定のタスクを表します。時には、Mavenのゴールはビルドフェーズに結び付けられていない場合もあります。これらのゴールはコマンドラインで実行することができます。ゴールを実行する構文は次のようになります。
$ mvn plugin-prefix:goal
$ mvn plugin-group-id:plugin-artifact-id[:plugin-version]:goal
コマンドラインから依存関係ツリーのゴールを実行する例を示します。これはビルドフェーズの一部ではありません。
mvn dependency:tree
ビルドライフサイクルにおけるPOMの役割
コマンドラインから実行されるMavenのビルドは、複数のフェーズとゴールを実行します。pom.xmlの設定は、プロジェクトのビルドライフサイクルを設定する際に重要な役割を果たします。pom.xmlファイルのpackagingの値によって、実行されるゴールのセットが定義されます。例えば、jarであれば以下のフェーズとゴールが実行されます。
Phase | Goal |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | jar:jar |
install | install:install |
deploy | deploy:deploy |
私たちは、プラグインエレメントを使用してpom.xmlファイル内でゴールを構成することもできます。これは、カスタムプラグインを作成し、ビルドフェーズで任意のゴールを実行したい場合に主に必要とされます。
参考文献を日本語で自然に言い換えてください。ただし、1つのオプションのみ必要です。
参考文献に関して。
- Apache.org Doc