【问题标题】:I specified new version of Log4J but still dependencies also show old version我指定了新版本的 Log4J 但仍然依赖项也显示旧版本
【发布时间】:2022-01-03 13:12:12
【问题描述】:

我有一个使用 SLF4J 的项目,SLF4J 也使用 Log4J 1.2.17(默认情况下没有在 pom.xml 中指定任何版本)。

您好,我想将 Log4J 版本升级到 2.17.1,有关于如何操作的信息 https://logging.apache.org/log4j/2.x/maven-artifacts.html

我将以下代码添加到我的 pom.xml 文件中

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.17.1</version>
  </dependency>
</dependencies>

然后当我检查 Maven 依赖项时,它会在我的项目中显示旧版本和新版本

目前我对“我是否升级 Log4J”感到困惑。我怎么能确定?

【问题讨论】:

  • 它可能是一个传递依赖。试试mvn dependency:tree 找出它的来源。
  • 首先你应该清理你的依赖,因为你的 jul-to-slf4j、log4j-1.2 和 log4j 2.x 和 logkit 看起来你有一个与日志相关的混乱依赖......没有整个项目是不可能猜到的......
  • 我检查了依赖树,发现我在我的项目中使用了 com.atlassian.bamboo:atlassian-bamboo-web:jar:6.8.1,它的依赖项之一是 Log4J 1.2.17。我是 Java 的菜鸟,所以我认为我无法对添加到项目中的组件的依赖组件进行版本升级,对吧? @marstran

标签: java maven log4j


【解决方案1】:

在您的 pom.xml 文件中,您需要找到您的 atlassian-bamboo-web 并排除 log4j,类似于此

<dependency>
    <groupId>com.atlassian.bamboo</groupId>
    <artifactId>atlassian-bamboo-web</artifactId>
    <version>6.8.1</version>
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>

然后,为了保护竹子伐木,您可能需要遵循从 log4j 1.x 到 2.x 的迁移 https://logging.apache.org/log4j/2.x/manual/migration.html

你还需要添加这个依赖来覆盖低版本的传递依赖。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.17.1</version>
</dependency>

【讨论】:

  • log4j-to-slf4jlog4j-slf4j-impl 应该永远一起部署。前者将 Log4j API 转发给 SLF4J,后者将 SLF4J 转发给 Log4j API。你的意思是log4j-1.2-api 吗?
  • 在问题中既有 log4j-slf4j-impl(添加)和 log4j-to-slf4j(传递),但版本不同。在这种情况下,我会将 log4j-to-slf4j 提升到 2.17.1,而不是隐式添加 log4j-slf4j-impl
【解决方案2】:

我解决了一个类似的问题,不包括旧的依赖项。请检查本节此处的“排除”条款并将其添加到您的 POM xml 文件中。 Maven Dependency Mechanism

【讨论】:

  • 我检查了依赖树,发现我在我的项目中使用了 com.atlassian.bamboo:atlassian-bamboo-web:jar:6.8.1,它的依赖项之一是 Log4J 1.2.17。我可以排除我添加到项目中的组件的依赖组件吗?
猜你喜欢
  • 2013-12-28
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2018-10-10
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多