Saya mendapatkan kesalahan berikut. Tampaknya ada beberapa kerangka kerja logging yang terikat ke sl4j. Tidak yakin bagaimana mengatasinya. Setiap bantuan sangat dihargai.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
<exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions>
di dependecies (dari pom.xml) yang menyebabkan konflik membantu menyelesaikan masalahJawaban:
Diselesaikan dengan menambahkan pengecualian berikut dalam dependensi (dari pom.xml) yang menyebabkan konflik.
sumber
slf4j-log4j12
) berlaku untuk semua? atau haruskah kita mencari tahu versi dari dependensi mvn: tree ?Versi gradle;
sumber
Kesalahan mungkin memberikan lebih banyak informasi seperti ini (walaupun nama toples Anda bisa berbeda)
Melihat bahwa konflik berasal dari dua toples, bernama
logback-classic-1.2.3
danlog4j-slf4j-impl-2.8.2.jar
.Jalankan
mvn dependency:tree
dalam folder induk pom.xml proyek ini, memberikan:Sekarang pilih salah satu yang ingin Anda abaikan (bisa mengkonsumsi usaha yang sulit saya perlu bantuan lebih lanjut tentang ini)
Saya memutuskan untuk tidak menggunakan yang diimpor dari
spring-boot-starter-data-jpa
(ketergantungan teratas) melaluispring-boot-starter
dan melaluispring-boot-starter-logging
, pom menjadi:di pom di atas
spring-boot-starter-data-jpa
akan menggunakan yangspring-boot-starter
dikonfigurasi dalam file yang sama, yang tidak termasuklogging
(mengandunglogback
)sumber
mvn dependency:tree
. Ini sangat membantu ...Versi sbt:
Menambah
exclude("org.slf4j", "slf4j-log4j12")
ketergantungan yang termasuk secara transitifslf4j-log4j12
. Misalnya, saat menggunakan Spark dengan Log4j 2.6:sumber
Saya dipecahkan dengan menghapus ini: spring-boot-starter-log4j2
sumber
Saya hanya mengabaikan / menghapus file jar itu.
sumber
Cukup gunakan hanya ketergantungan yang diperlukan, tidak semua :))). Bagi saya, untuk pekerjaan normal proses logging, Anda perlu dependensi ini mengecualikan orang lain dari pom.xml
sumber
Ini masalah karena kelas StaticLoggerBinder.class milik dua toples yang berbeda. referensi kelas ini dari logback-classic-1.2.3.jar dan kelas yang sama juga dirujuk dari log4j-slf4j-impl-2.10.0.jar. kedua jar di classpath. Karenanya ada konflik di antara mereka. Ini adalah alasan file log tidak dibuat walaupun file log4j2.xml di classpath [src / main / resource].
Kami telah memilih salah satu toples, saya sarankan menggunakan file log4j-slf4j-impl-2.10.0.jar dan mengecualikan file logback-classic-1.2.3.jar. Solusi: buka file pom dan lihat dependensi Hierarchy [eclipse] atau jalankan
mvn dependency: tree perintah untuk mengetahui pohon dependensi dan sumber dependensi yang mengunduh dependensi. menemukan ketergantungan yang saling bertentangan dan mengecualikan mereka. Untuk aplikasi Springboot coba ini.
sumber
... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-tools klasik com.sun ...
## Saya perbaiki dengan ini
... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-tools klasik com.sun ...
sumber
Bagi saya, itu ternyata menjadi masalah Eclipse / Maven setelah beralih dari log4j ke logback. Lihatlah
.classpath
file Anda dan cari string"log4j"
.Dalam kasus saya, saya memiliki yang berikut:
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.7.1/slf4j-log4j12-1.7.1.jar"/> <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" />
Menghapus entri-entri itu dari file (atau Anda bisa membuatnya kembali) memperbaiki masalah.
sumber
Bagi saya jawabannya adalah memaksa Maven membangun kembali. Dalam Eclipse:
sumber
Saya memiliki masalah yang sama. Dalam pom.xml saya, saya memiliki keduanya
Ketika saya menghapus dependensi spring-boot-starter-web, masalah terpecahkan.
sumber
Kombinasi
<scope>provided</scope>
dan<exclusions>
tidak berhasil untuk saya.Saya harus menggunakan ini:
Di mana
empty.jar
file jar dengan benar-benar tidak ada di dalamnya.sumber
Tampaknya menghapus direktori .m2 dan:
mvn install -DskipTests -T 4
menyelesaikan masalah ini untuk saya.sumber