1

私はMavenの概念を理解しようとしてきましたが、使用されている用語を理解するのは難しいと思います。

私はこの用語に出くわしました" build life cycle mapping"。この用語が何を意味するのか、誰かが私に明確な見解を教えてもらえますか?私build life cycleはそれが何であるかを知っていますが、それで「」を使用するとき、それはどういう意味mappingですか?

助けてくれてありがとう

更新:これは私がこの用語を見つけた場所です-プロジェクトビルドライフサイクルマッピング

4

2 に答える 2

1

Mavenの公式Webサイトにあるこの記事から始めることをお勧めします。

簡単に言うと、パッケージに応じた各プロジェクトには、ビルド中に実行されるいくつかのフェーズと、これらのフェーズにバインドされたいくつかのデフォルトプラグインがあります。たとえば、compileフェーズ中に、にmaven-compiler-pluginあるすべてのソースをコンパイルしますsrc/main/java(特に指定されていない場合)。プラグインがデフォルトのライフサイクルにバインドされていない場合(たとえば、カスタムプラグインである場合)、ビルドに含めて、特定のフェーズに自分でマップする必要があります(2番目はオプションです。ほとんどのカスタムプラグインには、目標のデフォルトのマッピングがあるためです。いくつかの特定のフェーズに、たとえば、デフォルトでjspc-maven-pluginその目標compilecompileライフサイクルのフェーズにバインドします)。

したがって、このコンテキストでのマッピングは、プロジェクトビルドの各フェーズで実行されるプラグインと目標のペアを指定します。

于 2012-07-09T08:56:08.150 に答える
1

ご存知のように、Mavenは一種のビルドライフサイクル、つまり一連のフェーズを提供します。これは、POMの検証、ソースの生成(必要な場合)、クラスのコンパイルなどの基本的なものから始まり、ローカルへのインストールで終わります。リポジトリとリモートリポジトリへのアーティファクトのデプロイ。重要なのは、これはシーケンスなので、ここでは順序が重要です。あるフェーズ(たとえばinstall)を呼び出すと、最初からのすべてのフェーズがinstall次々に実行されます。

さて、これらのライフサイクルのフェーズは、私たちが通常これを考慮しているように、すべてのソフトウェアプロジェクトが構築するために実行する必要があるステップに関するいくつかの一般的なアイデアです。また、ご存知のように、ソフトウェアアーティファクトにはさまざまな性質があるため、すべてのフェーズで非常に具体的な処理を行う必要があります。それがライフサイクルマッピングです。packagingアーティファクトの性質( Mavenの世界を意味する)に固有のライフサイクルのフェーズと具体的なプラグインの目標の間を拘束します。

したがって、たとえば、このパッケージ化のマッピングはjarmaven-compiler-plugin:compileフェーズcompileで呼び出す必要があることを示していますが、earパッケージングは​​、そのcompileフェーズで何も呼び出す必要がないことを示しています。その他の例については、こちらをご覧ください。

于 2012-07-09T08:58:12.910 に答える