例如我有依赖:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
例如,我可以排除一个班级org/slf4j/Marker.class
吗?
例如我有依赖:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
例如,我可以排除一个班级org/slf4j/Marker.class
吗?
不可能排除一个班级。您可以在<dependency>
标签内定义<exclusions/>
. 但是,这些是针对整个依赖项的。
应小心处理阴影插件。一般来说,在一个地方创建一个包含所有依赖项的 jar 不是一个好习惯,因为如果您要在另一个项目中使用生成的工件作为依赖项,这往往会导致问题。例如,在你的 jar 中对 slf4j 进行着色,然后根据你在另一个项目中的工件,如果你有另一个 slf4j,这会给你带来悲伤。
您可以更改这些类并将它们定义在不同的 jar/模块中,该 jar/模块应该作为依赖项包含在提供要排除的类所在的依赖项的 jar之前(Marker.class)。
Maven 会记住从 2.0.9 版本开始的类路径排序。