比如我有依赖性:Maven的依赖性:排除一个类
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
我可以排除一类,例如org/slf4j/Marker.class
?
比如我有依赖性:Maven的依赖性:排除一个类
<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的项目中取决于你的artifact会给你带来悲伤。
您可以更改这些类并将它们定义在不同的jar /模块中,这些应该作为依赖关系在之前提供依赖关系的jar文件(Marker.class)。
Maven记得从版本2.0.9开始的类路径排序。
'排除'在什么阶段 - 编译或打包? – Raghuram 2012-04-10 10:46:02
封装在.ear中,使用maven-ear-plugin – Ilya 2012-04-10 10:48:03
hmm! .ear需要的是没有指定类的'slf4j-api.jar'。没有直接的方法来实现这一点。 – Raghuram 2012-04-10 10:52:29