マルチモジュールのMavenプロジェクトがあり、すべてのサブモジュールmaven-compiler-plugin
でルートで指定されたものを使用するようにしますpom.xml
。宣言をどこに配置する必要がありますかmaven-compiler-plugin
(ルート内pom.xml
):<plugins>
セクション内または<pluginManagement>
セクション内?質問も関係してmaven-release-plugin
います。
2 に答える
これらの2つのセクション(plugins
およびpluginManagement
)の目的は少し異なります。
最初の(plugins
)は、プロジェクト(および親プロジェクトから継承するすべての子プロジェクト)のビルドプロセスを指定するために使用されます。このセクションにプラグインを含めると、タイプに関係なく、各子プロジェクトで実行されます。
2番目の(pluginManagement
)は、親プロジェクトから継承するすべてのプロジェクトに共通のプラグイン設定(プラグインのバージョンや構成など)を指定するために使用されます。
あなたが言及した2つのプラグインと言えば。maven-compiler-plugin
指定するかどうかに関係なく実行されるデフォルトのプラグインです。pluginManagement
それを含めて、そこで構成を指定することは理にかなっています。maven-release-plugin
ただし、デフォルトでは、ライフサイクルフェーズにバインドされていません。したがって、すべての子プロジェクトで実行する場合は、plugins
セクションに追加する必要があります。
それはあなたが何を求めているかによります。セクションの下にそれらを含めると、親を含むplugins
すべてのPOMに対して実行されます。子POMにプラグインの目標のみを実行させたい場合は、それらをの下に配置する必要があります。ただし、その場合は、各子POMでそれらを有効にする必要があります。pluginManagement
とは言うものの、最も簡単なことはplugins
最初に試してみることです。ビルドの失敗がなければ、問題ありません。それ以外の場合は、一部またはすべてをに移動する必要がありますpluginManagement
。