我正在尝试过滤jar中包含的资源。我正在使用shade-maven-plugin,这个将所有依赖项的所有资源添加到我生成的jar中,我只想包含我的项目资源。
这是我的pom定义:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>es.app.applet.MyApplet</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
我尝试添加下一个过滤器以删除所有资源,然后添加另一个过滤器,仅添加我的artifactID资源,但它不起作用。
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>resources/*.*</exclude>
</excludes>
</filter> <filter>
<artifact>my.groupId:my.artifactId</artifact>
<includes>
<include>resources/*.*</include>
</includes>
</filter>
想法?
感谢。
答案 0 :(得分:2)
这是因为过滤器包含在过滤器排除之前发生。
使用您的代码,您将包括#14; my.groupId:my.artifactId&#34; - &GT;资源/
但是你要排除所有&#34;资源/ 。&#34;
来自原始documentation:
从逻辑角度看,包括在排除之前处理, 因此,可以使用include来从中收集一组文件 然后存档使用排除来进一步减少集合。