我正在尝试排除要嵌入JAR的完整文件夹。我发现以下指令就像魅力一样:
<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定义,它就不再起作用了。
奇怪的是,如果我比较2配置的有效POM,它们是完全相同的!
在当前项目的POM或父POM中使用此指令有什么区别?
答案 0 :(得分: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>