1

私の目標は、2 つの Maven モジュール ( ) にある2 つの XML ファイル (両方とも という名前info.xml) をターゲット WAR アーカイブにマージすることです。src/main/resourcespackaging:jar

proj1: 含むsrc/main/resources/info.xml

proj2: 含むsrc/main/resources/info.xml

web: proj1 と proj2 からマージされた info.xml を含む web プロジェクト。Web プロジェクトでプラグインを宣言しました。

<build>     
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.2</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
                                <resource>info.xml</resource>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Web プロジェクトとそのモジュールをビルドするために、次のビルド プロジェクトがあります。

<modules>
    <module>proj1</module>
    <module>proj2</module>
    <module>web</module>
<modules>

mvn clean packageビルド プロジェクトでコマンドを使用してみましたが、その結果、解凍さweb/target/web.warれたライブラリ (あまり必要のない ueber.jar) が含まれており、マージされた info.xml ファイルはありません。

私は何を間違っていますか?!

4

1 に答える 1

0

Transformers多くの場合、追加のロジック、特に XML が必要になるため、ファイルをマージするように構成する必要があります。詳細については、リソース トランスフォーマーを参照してください。

于 2013-12-12T18:30:26.260 に答える