4

SLF4J ロガーをコードに追加すると、「クラス パスに複数の SLF4J バインディングが含まれています」というエラーが表示されます。ウェブサイト slf4j.org/codes では、それらをクラスパスから削除する必要があると述べています。ただし、これら 2 つのロガーは私の maven 依存関係に含まれています。そして、私のmaven依存関係フォルダー全体がクラスパスに含まれています。私は maven の依存関係を担当していないので、maven の依存関係フォルダー内にロガーの依存関係が 1 つだけになるように編集するのは私の場所ではありません。代わりに 1 つのロガーのみを使用するように Java プログラムを指定できますか?

エジェイ

4

2 に答える 2

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 に答える
1

問題を解決するために既存の Maven 依存関係を調整できないことが確実な場合は、最初のバインディングが複数のバインディングの場合に使用されるものであるため、SLF4J バインディングが最初にクラスパスに表示されるようにすることができます。

ただし、警告は引き続き表示されますが、SLF4J ロガーが使用されます。

各モジュールの pom.xml ファイルで各セクションの依存関係を別々に管理できるように、maven モジュールを利用してプロジェクトをセクションに分割することも検討できます。

于 2012-08-22T08:31:31.763 に答える