我有:
的src /主/爪哇/ com.tuto
|
-Class1.java
-Class2.java
-Class3.java
我的pom打包了一场战争。 所以在我的战争中,在WEB-INF / classes / com / tuto中我发现了3个类。
现在我要排除Class2.java
我试过
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<excludes>
<exclude>**/Class2.class</exclude>
</excludes>
</configuration>
</plugin>
但它不起作用。
我该怎么办?
好的,就像Aaron告诉我的那样,这很有效:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<packagingExcludes>**/Class2.class</packagingExcludes>
</configuration>
</plugin>
但是......
让我们从另一方面解决问题:我想排除除Class1和Class3之外的所有问题
所以我试过
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<packagingIncludes>**/Class1.class,**/Class3.class</packagingIncludes>
</configuration>
</plugin>
而这次它不起作用。
答案 0 :(得分:9)
As the documentation says,您应该使用packagingExcludes
元素。
请注意packagingExcludes
不使用嵌套元素。相反,内容是“以逗号分隔的Ant文件集模式列表”。
答案 1 :(得分:3)
从documentation开始,排除将优先于包含。在您的情况下,使用packagingExcludes显式排除class2。
<packagingExcludes>WEB-INF/classes/com/tuto/Class2.class</packagingExcludes>
答案 2 :(得分:1)
完整的插件xml应该类似于以下
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<outputDirectory>${build.output.directory}</outputDirectory>
<packagingExcludes>WEB-INF/classes/ItemConsumer.class</packagingExcludes>
</configuration>
</plugin>
答案 3 :(得分:0)
将插件添加到pom.xml - 100%正常工作。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<!--package path you want to delete-->
<packagingExcludes>WEB-INF/classes/lk/**</packagingExcludes>
<webResources>
<resource>
<!--project build path-->
<directory>${project.basedir}/target/classes/</directory>
<filtering>true</filtering>
<includes><include>**/*.class</include></includes>
</resource>
</webResources>
</configuration>
</plugin>