如何从Maven依赖项(Jar依赖项)中排除特定的类。
我在avro-tools.jar中遇到了ObjectUtils.class的问题,该问题是在运行时选择的,没有使用commons-lang3 jar中使用的方法。导致运行时出现NoSuchMethod错误。
我想知道有什么方法可以在pom.xml中指定以从avro-tools.jar(1.9.1)版本中排除此类org.apache.commons.lang3.ObjectUtils并从commons-中进行选择。 lang3.jar(3.9版本)
答案 0 :(得分:-2)
尝试使用maven-shade-plugin,它将从pom.xml生成的最终jar中删除类
注意:-无法从jar中删除特定的类。
<profiles>
<profile>
<id>TestShadeProfile</id>
<dependencies>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-tools</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<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>org.apache.avro:avro-tools</artifact>
<excludes>
<exclude>org/apache/commons/lang3/ObjectUtils*</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
希望它将对您有帮助
MVN清洁软件包-P TestShadeProfile