我們試圖從同一個pom文件(並且是的,我讀this Sonotype blog post說不要)構建兩個罐子,因爲我們需要一個包含我們所有資源的工具,而另一個沒有出於內部政治原因。我們已經配置了maven-jar-plugin配置,我們認爲應該工作,但資源總是包含在內。下面是我們的POM文件的相關部分:maven-jar-plugin排除失敗
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>package-consumer</id>
<phase>package</phase>
<configuration>
<classifier>consumer</classifier>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.bmp</exclude>
<exclude>**/*.jpg</exclude>
<exclude>**/*.jpeg</exclude>
<exclude>**/*.gif</exclude>
<exclude>**/*.xml</exclude>
<exclude>**/*.sql</exclude>
<exclude>**/*.log4j</exclude>
<exclude>**/*.properties</exclude>
<exclude>**/*.sh</exclude>
</excludes>
</resource>
</resources>
</configuration>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
當我們建立,我們得到OurProject.Jar和OurProject-consumer.jar正如人們所期望的,但所有相同的資源在每個jar文件。
我們嘗試過<exclude>**/*</exclude>
和<exclude>**/resources/*.*</exclude>
而不是列表或特定擴展名。沒有快樂。我希望我們缺少一些基本的東西。
感謝@安東尼 - Acioly。只要將標記移出即可解決問題。我不瞭解您的標記塊的需求,因爲我們的罐子在沒有它們的情況下似乎是正確的。 –
cneff
我們碰到的另一個警告是:當我們首先做出改變時,它正確地從消費者jar中排除了POM文件,這意味着沒有對consuer jar中的任何內容進行更改,所以它不會重建它!不用說,直到我們注意到兩個jar文件中的不同時間戳之後,這導致我們有些困惑和沮喪。 – cneff
第二個設置是爲了啓用[過濾](http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html)一組文件擴展名(同時複製其他資源不變) 。我假設你需要過濾,因爲原始的' true '。至於pom.xml,如果你想要它,你可能需要重新考慮' **/*。xml '模式。 –