我有一个带阴影的可执行文件.jar,它包含一个嵌入式Jetty服务器。我只有一个版本的SLF4J(1.6.1)作为依赖项,但是,当使用maven shade插件对.jar进行着色时,SLF4J将其视为具有多个绑定,因为依赖项打包在类路径上以及.jar
的根org
|_ slf4j
|_ ...
WEB-INF
|_ lib
|_ slf4j-api-1.6.1.jar
|_ slf4j-log4j12-1.6.1.jar
`SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/episner/Desktop/rmt/webapp/WEB-INF/l
ib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/episner/Desktop/rmt-2.2.2-SNAPSHOT.w
ar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.`
有没有办法来抑制此消息或修改我的maven构建以删除重复?
答案 0 :(得分:0)
修改您的POM,以便您的依赖项根本不会拉动SLF4J。 希望他们都对您的类路径中已有的SLF4J版本感到满意。
的内容
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.1.7</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>