1. ホーム
  2. maven

[解決済み] Maven。ライフサイクル vs フェーズ vs プラグイン vs ゴール [終了しました]。

2022-05-14 15:12:48

質問

比較的新しい開発者ですが、少し前からMavenを使用しているため、Mavenの基礎を固めたいと思っています。私の問題の一部は、私が no の経験を持っていないことです。私はチュートリアルを読み、見てきましたが、同じ用語を聞き続けました。

  • ライフサイクル
  • フェーズ
  • プラグイン
  • 目標

私が学んだところでは、ライフサイクルは最も広範なものであり、フェーズ、プラグイン、および/またはゴールで構成される(またはそれによって完成される)ようです。

質問 : これらの用語がどのように関連しているか、また最も一般的な例について、何か情報を提供していただけないでしょうか?

より明確で基本的であればあるほどよいです。

どのように解決するのですか?

A Maven ライフサイクル は、すべての ステップ (をカバーする抽象的な概念です(より良いのは、Maven設計者がサポートすることに決めたすべてのステップ)。 で、プロジェクトの開発期間中に発生すると予想されるものです。 これらのステップ(またはステージ)は と呼ばれる 段階 と呼ばれます。

A Maven プラグイン のコンテナ/サプライヤです。 のゴールを提供します。 goalsで実装されたコードが真の仕事人です。( コアとなるMaven自体はプラグインを管理し、ゴールを実行するだけ ). プラグインのゴールはそれぞれ ライフサイクルフェイズ .

起動時に mvn <phase> Mavenはすべてのフェーズを通過します。 (毎回) を実行し、すべてのゴール (プラグインから提供される) のいずれかにバインドされているすべてのゴールを実行します。 にバインドされているものである。ゴールがバインドされていないフェーズがある場合、何も行われません。しかし、それにもかかわらず、フェーズは渡されます。

すなわち、あなたは "'insert' additional phases" を Maven の組み込みライフサイクルの 1 つに挿入することはできません。それらはすでに存在し、常に存在します。独自のフェーズを持つ独自のライフサイクルを開発することもできますが、それは単に Maven をそのまま使用することをはるかに超えています。

ゴールは直接実行することもできます。 mvn をフェーズや(plugin:)ゴールなしで実行したときに言われます[ここでは読みやすくするために改行して短縮しています]。

You must specify a valid lifecycle phase or a goal in the format

<plugin-prefix>:<goal> or

<plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.

Available lifecycle phases are:

...

... 実際の出力を見るか Maven、ビルドライフサイクルの紹介 リファレンス の下にあります。

参考文献