当我将 SLF4J 记录器添加到我的代码中时,我收到一条错误消息,“类路径包含多个 SLF4J 绑定”。在网站 slf4j.org/codes 上,它声明我应该将它们从类路径中删除。但是,这两个记录器包含在我的 Maven 依赖项中。我的整个 maven 依赖文件夹都包含在类路径中。我不负责 maven 依赖项中的内容,因此不是我编辑它的地方,因此它在 maven 依赖项文件夹中只有一个记录器依赖项。我可以指定 Java 程序以便它只使用其中一个记录器吗?
杰伊
如果您确定无法调整现有的 maven 依赖项来解决问题,您可以确保您的 SLF4J 绑定首先出现在类路径中,因为第一个绑定是在多个绑定的情况下使用的绑定。
但是,您仍然会收到警告,但您的 SLF4J 记录器将被使用。
您还可以考虑使用 maven 模块将项目拆分为多个部分,以便您可以在每个模块的 pom.xml 文件中以不同方式管理每个部分中的依赖关系。
找出您项目的哪些依赖项包含 slf4j 实现,然后将其排除:
<dependency>
<groupId>other-group</groupId>
<artifactId>dependency-id</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<!-- or slf4j-jdk14, etc -->
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>