5.1 プロジェクトのフェーズのリスト
ついにプロジェクトの組み立てに入りました。そして、あなたは少し驚くでしょう。まあ、または結局のところ、強いです。Maven は、プロジェクトを構築するアプローチを改訂しました。そして今、あなたはそれを確信するでしょう。
プロジェクト全体の組み立てはいくつかのフェーズに分かれており、その説明を以下の表に示します。
注文 | 段階 | |
---|---|---|
1 | 検証 | プロジェクトに関するメタ情報の正確性をチェックします |
2 | コンパイル | ソースをコンパイルします |
3 | テスト | 前のステップのクラステストを実行します |
4 | パッケージ | コンパイルされたクラスを新しい成果物 (jar、war、zip など) にパックします。 |
5 | 確認 | 成果物の正確さと品質要件の満足度をチェックします |
6 | インストール | アーティファクトをローカルリポジトリに置きます |
7 | 配備 | 成果物を運用サーバーまたはリモート リポジトリにアップロードします |
同時に、 ステップは明らかに連続しています。Maven に package コマンドを実行するように指示すると、最初に検証、コンパイル、テストのフェーズが実行され、次にパッケージ化されます。
原則として、品質管理に検証、テスト、検証という個別のフェーズがあることを除いて、ここには新しいことは何もありません。また、アセンブリの展開には、インストールと展開という 2 つのフェーズがあります。
特定のフェーズを開始するには、 Maven フェーズコマンドを記述するだけで十分です。たとえば、ビルドするには、maven packageコマンドを実行する必要があります。等。
Intellij IDEA はこれらのフェーズの操作に優れており、右側に次の目的のための特別なメニューがあります。

ここでは、よく知られているフェーズに加えて、IDEA はさらに 2 つのコマンド ( cleanとsite )を表示します。clean はターゲット フォルダーを完全にクリアするために使用され、サイトでプロジェクト ドキュメントを作成できるようになります。
5.2 プロジェクトのビルド
プロジェクトをコンパイルする場合は、コンパイル フェーズを実行する必要があります。これは、コマンド ラインmvn apply を使用するか、IDEA インターフェイスを介して[コンパイル]項目をクリックして行うことができます。
その後、Maven はプロジェクトのビルドを開始し、次のようなビルド プロセスのログが表示されます。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------
何か問題が発生した場合、ログは次のようになります。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
ログには有益な情報がたくさん含まれており、時間が経つにつれて、それを理解し、理解できるようになります。
5.3 作業サイクル
すべての Maven コマンドは、ライフサイクルという 3 つのグループに分類されます。これらは、すべての Maven アクティビティがビルドであるわけではないため、ビルドまたは特定のライフサイクル中に実行されるフェーズの順序を指定するため、ライフサイクルと呼ばれます。
次の 3 つのライフサイクルがあります。
- 綺麗;
- デフォルト;
- サイト。
そして、それぞれに独自のフェーズ順序があります。Clean が最も短い:
- プレクリーン。
- 綺麗;
- ポストクリーン。
クリーンアップ シナリオをより柔軟にできるように、隠れたクリーン前フェーズとクリーン後フェーズが追加されました。
次に、サイト ライフ サイクルが登場します。これは、すでにご存知のとおり、プロジェクト ドキュメントを自動的に生成するように設計されています。これは 4 つのフェーズで構成されます。
- プレサイト
- サイト;
- ポストサイト。
- サイト展開。
標準のライフサイクルは、 Maven プラグインを使用して機能を強化できます。これについては、別の講義に値する非常に興味深いトピックなので、後で説明します。
そして、デフォルトのスクリプトには最も長いフェーズのリストがあります。
- 検証;
- ソースを生成します。
- プロセスソース;
- リソースを生成します。
- プロセスリソース;
- コンパイル;
- プロセステストソース;
- プロセステストリソース;
- テストコンパイル。
- テスト;
- パッケージ;
- インストール;
- 配備。
すでにご存知のフェーズと同じものがすべてありますが、さらにいくつかのオプションのフェーズが追加されています。
まず、大規模プロジェクトでよく行われる段階は、ソースの生成です。たとえば、XML に基づいて Java コードを生成します。そして、このコードで何かを行うprocess-sourcesのペア。
次に、リソースの生成は、generate-resourcesとそのペアのプロセス リソースメソッドです。大規模なプロジェクトでは、いくつかのアクティビティがこれらのフェーズに関連付けられていることがよくあります。
そして最後にテストです。これには、テスト フェーズの実行を可能な限り柔軟にするのに役立つ 3 つの追加のオプション フェーズ (process-test-sources、process-test-resources、test-compile) があります。
GO TO FULL VERSION