Beberapa Kesalahan Pengikatan SLF4J | SKPTRIK

Tutorial ini menjelaskan cara memperbaiki Multiple SLF4J Bindings Error di proyek maven. Sebagian besar waktu Anda mungkin melihat kesalahan selama pengembangan aplikasi.

Kesalahan:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/path/to/jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/path/to/another/jar!/org/slf4j/impl/StaticLoggerBinder.class]
...
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

Larutan

Kasus A: pengecualian

Proyek X -> Proyek Y -> Proyek A

di Project X, saat mendeklarasikan Project Y sebagai dependensi, kecualikan Project A secara eksplisit

Tambahkan pengecualian ke dependensi di pom

<dependencies>
    <dependency>
        <groupId> org.apache.cassandra</groupId>
        <artifactId>cassandra-all</artifactId>
        <version>0.8.1</version>

        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>

    </dependency>
</dependencies>

Kasus B: opsional

Proyek X

  • Proyek Y -> Proyek A
  • Proyek Z -> Proyek A
  • Proyek A

di Project Y / Z ‘pom, setel Project A sebagai opsional, maka itu tidak akan disertakan dalam classpath

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
    <optional>true</optional>
</dependency>

Kasus C: tersedia

  • Proyek X -> Proyek A
  • Proyek Y -> Proyek A
  • Proyek Z -> Proyek A

Dan XYZ semuanya ada di classpath: setel semua kecuali 1 ke disediakan

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
    <optional>true</optional>
    <scope>provided</scope>
</dependency>

Terima kasih telah membaca artikel ini, dan jika Anda memiliki masalah, dapatkan solusi lain yang lebih bermanfaat tentang artikel ini, silakan tulis pesan di bagian komentar.