【问题标题】:NoSuchMethod org.slf4j.spi.LocationAwareLogger errorNoSuchMethod org.slf4j.spi.LocationAwareLogger 错误
【发布时间】:2021-01-07 14:21:14
【问题描述】:

通过 cmd 输入 mvn clean test 命令后,我的代码中遇到 NoSuchMethod org.slf4j.spi.LocationAwareLogger 错误。

可能它与 maven 依赖有关,但我不知道我应该在 pom xml 中确切地安排在哪里。

 <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.25</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.25</version>
    <scope>test</scope>
</dependency>

另外,我尝试使用 mvn dependency:tree 来检查依赖树,但它没有意义。

【问题讨论】:

  • ..你的代码在哪里?
  • 我猜,它与代码无关,因为它通过 eclipse 可以正常工作。
  • 最好发布minimal reproducible example,而不是猜测需要什么,不需要什么,否则我们无法帮助您。我们如何理解出了什么问题?现在您已经上传了图像,并且看起来构建成功了。仅从这篇文章不能推断出其他问题是什么。请相应更新。

标签: java maven pom.xml slf4j maven-dependency


【解决方案1】:

使用 mvn dependency:tree 查看 slf4j maven 决定给你的版本。如果它选择了错误的版本,您可以使用依赖管理部分来指定您想要的版本。而且您需要将 pom 排除在您不使用的依赖项中。

另外,如果使用 Eclipse IDE,另一种修复方法,使用 SHIFT + CTRL + T 打开以下类型“SLF4JLocationAwareLog” 您应该能够找到相关的库,因此可能存在冲突。 切换到 pom.xml 的依赖树视图,了解要添加的排除项。

【讨论】:

  • 我如何理解 slf4j 的哪个版本是由 maven 决定的?我可以按 mvn 依赖关系列出:树但无法读取它。
  • 正如我所见,我认为您在图像上发布 jcl104-over-slf4j 可能会给您带来问题。您需要为该依赖项添加排除项` org.slf4j jcl104-over-slf4j`
猜你喜欢
  • 1970-01-01
  • 2017-02-02
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 2016-12-14
  • 2019-01-03
相关资源
最近更新 更多