5.1 プロジェクトのフェーズのリスト

ついにプロジェクトの組み立てに入りました。そして、あなたは少し驚くでしょう。まあ、または結局のところ、強いです。Maven は、プロジェクトを構築するアプローチを改訂しました。そして今、あなたはそれを確信するでしょう。

プロジェクト全体の組み立てはいくつかのフェーズに分かれており、その説明を以下の表に示します。

注文 段階
1 検証 プロジェクトに関するメタ情報の正確性をチェックします
2 コンパイル ソースをコンパイルします
3 テスト 前のステップのクラステストを実行します
4 パッケージ コンパイルされたクラスを新しい成果物 (jar、war、zip など) にパックします。
5 確認 成果物の正確さと品質要件の満足度をチェックします
6 インストール アーティファクトをローカルリポジトリに置きます
7 配備 成果物を運用サーバーまたはリモート リポジトリにアップロードします

同時に、 ステップは明らかに連続しています。Maven に package コマンドを実行するように指示すると、最初に検証、コンパイル、テストのフェーズが実行され、次にパッケージ化されます。

原則として、品質管理に検証、テスト、検証という個別のフェーズがあることを除いて、ここには新しいことは何もありません。また、アセンブリの展開には、インストールと展開という 2 つのフェーズがあります。

特定のフェーズを開始するには、 Maven フェーズコマンドを記述するだけで十分です。たとえば、ビルドするには、maven packageコマンドを実行する必要があります。等。

Intellij IDEA はこれらのフェーズの操作に優れており、右側に次の目的のための特別なメニューがあります。

Maven フェーズ

ここでは、よく知られているフェーズに加えて、IDEA はさらに 2 つのコマンド ( cleansite )を表示します。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 が最も短い:

  1. プレクリーン。
  2. 綺麗;
  3. ポストクリーン。

クリーンアップ シナリオをより柔軟にできるように、隠れたクリーン前フェーズとクリーン後フェーズが追加されました。

次に、サイト ライフ サイクルが登場します。これは、すでにご存知のとおり、プロジェクト ドキュメントを自動的に生成するように設計されています。これは 4 つのフェーズで構成されます。

  1. プレサイト
  2. サイト;
  3. ポストサイト。
  4. サイト展開。

標準のライフサイクルは、 Maven プラグインを使用して機能を強化できます。これについては、別の講義に値する非常に興味深いトピックなので、後で説明します。

そして、デフォルトのスクリプトには最も長いフェーズのリストがあります。

  1. 検証;
  2. ソースを生成します。
  3. プロセスソース;
  4. リソースを生成します。
  5. プロセスリソース;
  6. コンパイル;
  7. プロセステストソース;
  8. プロセステストリソース;
  9. テストコンパイル。
  10. テスト;
  11. パッケージ;
  12. インストール;
  13. 配備。

すでにご存知のフェーズと同じものがすべてありますが、さらにいくつかのオプションのフェーズが追加されています。

まず、大規模プロジェクトでよく行われる段階は、ソースの生成です。たとえば、XML に基づいて Java コードを生成します。そして、このコードで何かを行うprocess-sourcesのペア。

次に、リソースの生成は、generate-resourcesとそのペアのプロセス リソースメソッドです。大規模なプロジェクトでは、いくつかのアクティビティがこれらのフェーズに関連付けられていることがよくあります。

そして最後にテストです。これには、テスト フェーズの実行を可能な限り柔軟にするのに役立つ 3 つの追加のオプション フェーズ (process-test-sources、process-test-resources、test-compile) があります。