2.2. 複数のモジュールを使用した Maven プラグインの実行
複数のモジュールを持つプロジェクトで Maven プラグインを使用するには、親の pom.xml
内に設定を配置します。実行中、Maven プラグインは親モジュールおよび子モジュールの分析が含まれる単一のレポートを生成します。
マルチモジュールプロジェクトでは、inherited
を false に設定することが強く推奨されます。それ以外の場合は、子の各モジュールがコンパイルされるときに Maven プラグインが実行し、子モジュールに対して Maven プラグインが複数回実行されます。inherited
を false に設定すると、各プロジェクトで 1 回分析され、実行時間が大幅に短縮されます。
複数のモジュールを持つプロジェクトで Maven プラグインを実行するには、以下の手順を実行します。
親プロジェクトの
pom.xml
に以下のプラグインを追加します。以下は、親モジュールのpom.xml
の例になります。<plugin> <groupId>org.jboss.windup.plugin</groupId> <artifactId>mtr-maven-plugin</artifactId> <version>1.1.1.GA-redhat-00001</version> <inherited>false</inherited> <executions> <execution> <id>run-windup</id> <phase>package</phase> <goals> <goal>windup</goal> </goals> </execution> </executions> <configuration> <input>${project.basedir}</input> <target>eap:7</target> 1 <windupHome>>/PATH/TO/CLI/<</windupHome> </configuration> </plugin>
- 1
- 移行先を指定します。設定内で少なくとも 1 つの移行ターゲットを指定する必要があります。
この
pom.xml
ファイルは、以下の属性でデフォルトとは異なります。-
inherited
: プラグインレベルで定義され、この設定を子モジュールで使用するかどうかを指定します。パフォーマンスを向上させるためにfalse
に設定します。 -
input
: 分析されるプロジェクトが含まれるディレクトリーへのパスを指定します。この属性はデフォルトで{project.basedir}/src/main
に設定されています。親プロジェクトに解析するソースコードがない場合は定義する必要があります。 samupHome
: MTR CLI の抽出されたコピーへのパス。この属性は任意ですが、パフォーマンスを向上させることが推奨されます。上記の例は、推奨される引数のセットを示しています。
親プロジェクトをビルドします。ビルドプロセス中に、Maven プラグインは追加設定なしでプロジェクトのすべての子に対して実行されます。
$ mvn clean install
- 完了したら、生成されたレポートにアクセスできます。このレポートには、親およびすべての子に関する分析が含まれます。