2015-08-27 3 views
1

Я пытаюсь исключить полную папку, которая будет встроена в JAR. Я нашел следующую директиву, которая работает как шарм:Исключить директиву в родительском POM

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <excludes> 
        <exclude>**/unwantedJars/**</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 
    </plugins> 

Таким образом, при работе mvn clean install, не проблема, я получаю JAR без нежелательной папки.

Однако у меня есть несколько проектов, которые должны включать эту директиву (вместе с другой общей конфигурацией), поэтому я использую родительский проект POM. Все работает хорошо, кроме вышеуказанной директивы. Как только я переведу эту исключающую часть в родительское определение POM, она больше не работает.

Странно, что если я сравню эффективный POM конфигурации 2, они абсолютно идентичны!

В чем разница между установкой этой директивы на POM текущего проекта или родительского POM?

+0

Зачем вам нужно, чтобы исключить эти файлы/папки от упаковки? – khmarbaise

+0

Ну, эта папка содержит несколько JAR, которые требуются только во время разработки (BIRT), но абсолютно бесполезны после развертывания в рабочей среде. Вложение в них увеличивает размер финальной JAR с относительно большим соотношением ... – hublo

ответ

0

Вы должны использовать pluginManagement

родитель-pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    ... 
    <build> 
    ... 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <excludes> 
        <exclude>**/unwantedJars/**</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    ... 
    </build> 
</project> 

ребенка pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    ... 
    <build> 
    ... 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     </plugin> 
    </plugins> 
    ... 
    </build> 
</project> 
+0

спасибо за предложение, но, к сожалению, это не помогло. Однако, вернувшись к первоначальному сообщению ... как мы можем объяснить, что 2 одинаковых эффективных POM могут привести к двум различным результатам? – hublo

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