4

当我将 SLF4J 记录器添加到我的代码中时,我收到一条错误消息,“类路径包含多个 SLF4J 绑定”。在网站 slf4j.org/codes 上,它声明我应该将它们从类路径中删除。但是,这两个记录器包含在我的 Maven 依赖项中。我的整个 maven 依赖文件夹都包含在类路径中。我不负责 maven 依赖项中的内容,因此不是我编辑它的地方,因此它在 maven 依赖项文件夹中只有一个记录器依赖项。我可以指定 Java 程序以便它只使用其中一个记录器吗?

杰伊

4

2 回答 2

1

如果您确定无法调整现有的 maven 依赖项来解决问题,您可以确保您的 SLF4J 绑定首先出现在类路径中,因为第一个绑定是在多个绑定的情况下使用的绑定。

但是,您仍然会收到警告,但您的 SLF4J 记录器将被使用。

您还可以考虑使用 maven 模块将项目拆分为多个部分,以便您可以在每个模块的 pom.xml 文件中以不同方式管理每个部分中的依赖关系。

于 2012-08-22T08:31:31.763 回答
1

找出您项目的哪些依赖项包含 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>
于 2012-08-22T11:58:33.610 回答