2.3. 複数のモジュールを使用した 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>4.2.1.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 は、Maven プラグインの実行 のものと次の属性で異なります。

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

      上記の例は、推奨される引数のセットを示しています。使用可能なすべての引数の詳細な説明については、MTA Maven 引数 を参照してください。

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

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