2.2. 複数のモジュールを使用した Maven プラグインの実行

複数のモジュールを持つプロジェクトで Maven プラグインを使用するには、親の pom.xml 内に設定を配置します。実行中、Maven プラグインは親モジュールおよび子モジュールの分析が含まれる単一のレポートを生成します。

注記

マルチモジュールプロジェクトでは、inherited を false に設定することが強く推奨されます。それ以外の場合は、子の各モジュールがコンパイルされるときに Maven プラグインが実行し、子モジュールに対してMavenプラグインが複数回実行されます。inherited を false に設定すると、各プロジェクトで 1 回分析され、実行時間が大幅に短縮されます。

複数のモジュールを持つプロジェクトで Maven プラグインを実行するには、以下の手順を実行します。

  1. 親プロジェクトの pom.xml に以下のプラグインを追加します。以下は、親モジュールの pom.xml の例になります。

    <plugin>
        <groupId>org.jboss.windup.plugin</groupId>
        <artifactId>windup-maven-plugin</artifactId>
        <version>5.1.4.Final</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>
            <offlineMode>true</offlineMode>
            <windupHome>>/PATH/TO/CLI/<</windupHome>
        </configuration>
    </plugin>

    この pom.xml ファイルは、以下の属性でデフォルトとは異なります。

    • inherited: プラグインレベルで定義され、この設定を子モジュールで使用するかどうかを指定します。パフォーマンスを向上させるために false に設定します。
    • input: 分析されるプロジェクトが含まれるディレクトリーへのパスを指定します。この属性はデフォルトで {project.basedir}/src/main に設定されています。親プロジェクトに解析するソースコードがない場合は定義する必要があります。
    • samupHome: MTA CLI の抽出されたコピーへのパス。この属性は任意ですが、パフォーマンスを向上させることが推奨されます。

      上記の例は、推奨される引数のセットを示しています。

  2. 親プロジェクトをビルドします。ビルドプロセス中に、Maven プラグインは追加設定なしでプロジェクトのすべての子に対して実行されます。

    $ mvn clean install
  3. 完了したら、生成されたレポートにアクセスできます。このレポートには、親およびすべての子に関する分析が含まれます。