0

私はmavenに不慣れで、本当に気になる何かに行き詰まっていることに気づきました。

マルチモジュール プロジェクトがあり、親の pom.xml には次のプラグインが含まれています。

    <plugin>
            <artifactId>maven-remote-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>process-remote-resources</id>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <resourceBundles>
                            <resourceBundle>
                                ${shared.resources.version}
                            </resourceBundle>
                        </resourceBundles>
                        <includes>
                            <include>version.info</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

このコードは version.info ファイルを生成し、それらを各モジュール jar ファイルに配置します。このコードで、3 つのうち 2 つのモジュールのみの version.info ファイルを作成できるかどうか疑問に思っていました。

たとえば、A、B、C のモジュールがあるとします。version.info ファイルを A と B に配置したいのですが、C には配置したくありません。

前もってありがとう、メニー

4

1 に答える 1

1

最善の解決策は、このプラグイン構成を親 pom の project/build/pluginManagement 要素に移動することです。

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-remote-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>process-remote-resources</id>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <resourceBundles>
                           <resourceBundle>
                            ${shared.resources.version}
                           </resourceBundle>
                        </resourceBundles>
                        <includes>
                           <include>version.info</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</pluginManagement>

モジュール poms の project/build/plugins で呼び出します。

<plugins>
    <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
    </plugin>
</plugins>

親 pom のそのようなリファクタリングが許可されていない場合は、skip を true に設定してプラグイン構成をオーバーライドするか、none フェーズを使用して不要なプラグイン呼び出しを無効にします: http://thomaswabner.wordpress.com/2010/02/16/howto-disable-inherited -maven-プラグイン/

于 2012-07-09T15:24:34.640 に答える