Плагин 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. См. Ресурсные Трансформеры для деталей.