Maven shade插件不合并文件

时间:2013-12-12 15:51:12

标签: maven maven-shade-plugin

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

proj1:包含packaging:jar

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

web:web项目,其中应包含来自proj1和proj2的合并info.xml。我在web项目中声明了插件:

src/main/resources/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>

我尝试在构建项目中使用<modules> <module>proj1</module> <module>proj2</module> <module>web</module> <modules> 命令,因此我的mvn clean package包含解压缩的libs(我真的不想要的ueber.jar)和没有合并的info.xml文件。

我做错了什么?!

1 个答案:

答案 0 :(得分:0)

您必须配置Transformers来合并文件,因为它通常需要额外的逻辑,尤其是XML。有关详细信息,请参阅Resource Transformers