7

マルチモジュールのMavenプロジェクトがあり、すべてのサブモジュールmaven-compiler-pluginでルートで指定されたものを使用するようにしますpom.xml。宣言をどこに配置する必要がありますかmaven-compiler-plugin(ルート内pom.xml):<plugins>セクション内または<pluginManagement>セクション内?質問も関係してmaven-release-pluginいます。

4

2 に答える 2

14

これらの2つのセクション(pluginsおよびpluginManagement)の目的は少し異なります。

最初の(plugins)は、プロジェクト(および親プロジェクトから継承するすべての子プロジェクト)のビルドプロセスを指定するために使用されます。このセクションにプラグインを含めると、タイプに関係なく、各子プロジェクトで実行されます。

2番目の(pluginManagement)は、親プロジェクトから継承するすべてのプロジェクトに共通のプラグイン設定(プラグインのバージョンや構成など)を指定するために使用されます。

あなたが言及した2つのプラグインと言えば。maven-compiler-plugin指定するかどうかに関係なく実行されるデフォルトのプラグインです。pluginManagementそれを含めて、そこで構成を指定することは理にかなっています。maven-release-pluginただし、デフォルトでは、ライフサイクルフェーズにバインドされていません。したがって、すべての子プロジェクトで実行する場合は、pluginsセクションに追加する必要があります。

于 2012-12-19T19:29:04.057 に答える
1

それはあなたが何を求めているかによります。セクションの下にそれらを含めると、親を含むpluginsすべてのPOMに対して実行されます。子POMにプラグインの目標のみを実行させたい場合は、それらをの下に配置する必要があります。ただし、その場合は、各子POMでそれらを有効にする必要があります。pluginManagement

とは言うものの、最も簡単なことはplugins最初に試してみることです。ビルドの失敗がなければ、問題ありません。それ以外の場合は、一部またはすべてをに移動する必要がありますpluginManagement

于 2012-12-19T19:15:53.017 に答える