Плагин Maven Shade не объединяет файлы

Моя цель - объединить два XML-файла (оба info.xml) которые находятся в src/main/resources из двух модулей Maven (packaging:jar) в целевой WAR-архив.

proj1: содержит src/main/resources/info.xml

proj2: содержит src/main/resources/info.xml

web: веб-проект, который должен содержать объединенный файл info.xml из proj1 и proj2. Я объявил плагин в веб-проекте:

<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 команда в проекте сборки и как результат мой web/target/web.war содержит распакованные библиотеки (ueber.jar, которые мне не нужны) и НЕТ слитых файлов info.xml.

Что я делаю неправильно?!

1 ответ

Вы должны настроить Transformers объединять файлы, так как это часто требует дополнительной логики, особенно XML. См. Ресурсные Трансформеры для деталей.

Другие вопросы по тегам