1

我的目标是将两个 Maven 模块 ( ) 中的两个 XML 文件(均名为info.xml)合并到目标 WAR 存档中。src/main/resourcespackaging:jar

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

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

web:web 项目,应该包含来自 proj1 和 proj2 的合并 info.xml。我在 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 回答