Java 如何从Maven依赖项中排除一些包(在JAR中)?
我依赖于Maven项目中的一个库,我发现该库的JAR包含一些导致我的应用程序失败的包。我相信,如果我能够以某种方式排除这些包,那么这个库应该仍然可以工作,但我希望通过Maven实现这一点,而不是通过自己破解JAR文件。有没有办法用Maven做到这一点?你可以看看Java 如何从Maven依赖项中排除一些包(在JAR中)?,java,maven,Java,Maven,我依赖于Maven项目中的一个库,我发现该库的JAR包含一些导致我的应用程序失败的包。我相信,如果我能够以某种方式排除这些包,那么这个库应该仍然可以工作,但我希望通过Maven实现这一点,而不是通过自己破解JAR文件。有没有办法用Maven做到这一点?你可以看看Maven shade插件。官方文件中显示了一个示例 org.apache.maven.plugins maven阴影插件 2.3 包裹 阴凉处 junit:junit junit/framework/** org/junit/** o
Maven shade插件。官方文件中显示了一个示例
org.apache.maven.plugins
maven阴影插件
2.3
包裹
阴凉处
junit:junit
junit/framework/**
org/junit/**
org/junit/experimental/**
org/junit/runners/**
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>junit:junit</artifact>
<includes>
<include>junit/framework/**</include>
<include>org/junit/**</include>
</includes>
<excludes>
<exclude>org/junit/experimental/**</exclude>
<exclude>org/junit/runners/**</exclude>
</excludes>
</filter>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>