2013-12-12 6 views
1

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

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

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

Веб: веб-проект, который должен содержать объединенную 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 в проекте сборки и, как result my web/target/web.war содержит распакованные библиотеки (ueber.jar, которых я действительно не хочу), и НЕ слияние файлов info.xml.

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

ответ

0

Чтобы объединить файлы, вам необходимо настроить Transformers, поскольку для этого часто требуется дополнительная логика, особенно XML. Для получения дополнительной информации см. Resource Transformers.

Смежные вопросы