从pom中的第三方jar中排除log4j

时间:2014-07-08 08:42:59

标签: spring maven pom.xml

我正在创建一个可以访问现有业务代码的Web服务。 处理日志记录所需的jar是org.ops4j.pax.logging。 我把它包含在pom中

    <dependency>
       <groupId>org.ops4j.pax.logging</groupId>
       <artifactId>pax-logging-api</artifactId>
       <version>1.6.0</version>
    </dependency>

此jar允许访问在整个业务层中使用的特定log4j方法

LOGGER.debug(object, object);

其他需要的罐子之一是第三方罐子。 此jar包含不同版本的log4j,它不实现debug(object,object)方法。 当我将这个jar添加到pom时,JVM首先在第三方jar中找到log4j类,然后代码就会崩溃。

我试图排除第三方jar中的log4j但无济于事。

<dependency>
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>        
  <exclusions>      
    <exclusion>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </exclusion>
  </exclusions>
</dependency>   

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是https://www.baeldung.com/slf4j-classpath-multiple-bindings的正确答案

<exclusions>
    <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
    <exclusion>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </exclusion>
</exclusions>
相关问题