0

我有一个包含嵌入式 Jetty 服务器的阴影可执行 .jar。我只有一个版本的 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 构建以删除重复项?

4

1 回答 1

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>
于 2013-07-03T16:07:02.667 回答