- Mengenai Eclipse IDE ( Indigo , Juno dan Kepler (versi 32 dan 64 bit))
- Platform : Windows , Ubuntu , Mac
- versi m2e : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
1.4.0.20130601-0317
Informasi Umum
Kesalahan di atas muncul setelah memperbarui m2e ke versi 1.1. Dengan menghapus m2e 1.1 dan mengembalikan ke m2e 1.0 semuanya bekerja dengan baik. Saya mencoba mengulangi masalah di Windows dan Ubuntu dan itu memberi saya kesalahan yang sama persis. Berbagai konfigurasi slf4j-api dan logback telah diuji, tetapi tampaknya tidak ada yang berhasil.
Error ini muncul di project maven mana pun bahkan tanpa mendeklarasikan dependensi slf4j .
Proyek Maven Baru -> maven-archetype-quickstart
dan
Proyek Maven Baru -> Proyek sederhana tanpa pemilihan arketipe
hasil untuk
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Menguji lingkungan dan konfigurasi
Diuji dengan Eclipse Indigo dan Eclipse Juno (keduanya 32 dan 64 bit) di Mac, 32 bit di Ubuntu, serta 64 dan 32 bit di Windows. Menguji penginstalan baru Juno Classic , alat Juno Modeling , Kepler Standard , Kepler Modeling Tools dan menghasilkan kesalahan yang sama.
Kesalahan muncul dengan clean , install , test , deploy , generate-sources , validate , compile , package , integration-test , verifikasi dan kombinasi goal clean dengan tujuan lainnya. Itu juga muncul dengan parameter -e dan -X . Ada upaya untuk menghapus repositori m2e dan mengunduhnya dari awal tetapi sekali lagi tidak berhasil. Harus saya sebutkan bahwa itu diuji di 3 mesin yang berbeda dan kotak virtual semua sistem di atas tetapi menghasilkan kesalahan yang sama.
Mencoba semua konfigurasi logback berbeda (dari 1.0.4 hingga 1.0.13) yang menyelesaikan dependensi slf4j-api dan logback-core , tetapi semuanya menghasilkan error yang sama:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
Mencoba semua konfigurasi slf4j-simple yang berbeda (dari 1.6.1 hingga 1.7.5) .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Mencoba semua konfigurasi log4j-over-slf4j yang berbeda (dari 1.6.1 hingga 1.7.5) .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Mencoba semua konfigurasi slf4j-jdk14 yang berbeda (dari 1.6.1 hingga 1.7.5) .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Mencoba semua konfigurasi berbeda (dari 1.6.1 hingga 1.7.5) slf4j-log4j12 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Mencoba konfigurasi slf4j-nop 1.7.5 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
Terakhir, log disimpan dan dicetak meskipun ada kesalahan.
Cara mereproduksi kesalahan
Unduh Eclipse Juno, Indigo atau Kepler 32 atau 64 bit (Semua instalasi akan menyebabkan kesalahan yang sama).
Instal m2e - Integrasi Maven untuk Eclipse
- Juno - http://download.eclipse.org/releases/juno
- Kepler - http://download.eclipse.org/releases/kepler
- Indigo - http://download.eclipse.org/technology/m2e/releases/ ( saat ini tidak tersedia )
ATAU
Perbarui versi m2e Anda ke 1.1.0.20120530-0009 , atau 1.2.0.20120903-1050 , atau 1.3.0.20130129-0926 , atau 1.4.0.20130601-0317 )
Pilih File-> New-> Other-> Maven Project-> Klik Next-> Pilih
maven-archetype-quickstart dari katalog-> SelesaiATAU
Pilih File-> Baru-> Lainnya-> Proyek Maven-> Klik Berikutnya-> Pilih Buat proyek sederhana (lewati pemilihan arketipe) -> Info Artefak Lengkap-> Selesai
- Klik kanan pada proyek-> Runs As-> clean install (atau tujuan lain yang disebutkan di atas)
Baris pertama di konsol adalah
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
PS Proyek yang ada akan menghasilkan kesalahan yang sama setelah memperbarui versi m2e ke 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317
Pembaruan
EDIT
situs pendukung m2e:
Pertanyaan di atas telah diposting sebagai bug di situs dukungan m2e dan jawaban dari Igor Fedorenko adalah itu
Tidak ada rencana segera untuk menyembunyikan pesan ini.
Untuk melihat bug di atas, silakan merujuk ke situs dukungan resmi m2e
EDIT 2
- Indikasi kesalahan di atas adalah hadir juga untuk M2E versi 1.2.0.20120903-1050
EDIT 3
- Indikasi kesalahan di atas adalah hadir juga untuk M2E versi 1.3.0.20130129-0926
EDIT 4
- Indikasi kesalahan di atas adalah hadir juga untuk M2E versi 1.4.0.20130601-0317
EDIT 5
***Reported FIXED***
- Kesalahan di atas dilaporkan telah diperbaiki untuk m2e versi 1.5.0 / Luna M3 ( Target Milestone ). Versi tersebut belum tersedia untuk diunduh.
- Luna M3 adalah dijadwalkan Nov. ke-15 .
- Build dev terbaru tersedia di sini
- Informasi lebih lanjut tentang tonggak m2e dapat Anda temukan di gudang utama m2e .
slf4j
di keduanyaslf4j-api-1.7.7
danjcl-over-slf4j-1.7.7
dan jika saya mencoba untuk menghapus siapa pun dari mereka, saya mendapatkan pesan kesalahan yang mengatakan bahwaLogger
kelas mereka hilang. Apa yang harus saya lakukan?Jawaban:
Saya juga dapat mengonfirmasi kesalahan ini.
Solusi: adalah menggunakan maven eksternal di dalam m2eclipse, bukan menggunakan maven tertanam.
Itu dilakukan dalam tiga langkah:
1 Instal maven di mesin lokal ( mesin uji adalah Ubuntu 10.10)
2 Jalankan maven secara eksternal tautkan cara menjalankan maven dari konsol
3 di dalam m2eclipse: beralih dari pakar tertanam ke pakar lokal
mvn --version
atau google untuk AndaMAVEN_HOME
, bagi saya ini membantu saya yang/usr/share/maven2
)Pesan kesalahan harus hilang.
sumber
#mvn --version
lebih mudah untuk menampilkan MAVEN_HOME.Ada dokumentasi di situs SLf4J untuk mengatasi ini. Saya mengikuti itu dan menambahkan slf4j-simple-1.6.1.jar ke aplikasi saya bersama dengan slf4j-api-1.6.1.jar yang sudah saya miliki. Ini menyelesaikan masalah saya
slf4j
sumber
Jika Anda menggunakan Gradle, tambahkan ini:
sumber
Memiliki kesalahan serupa dengan hasil yang sama dengan Gradle dan mampu mengatasinya dengan mengikuti:
Baris komentar keluar adalah salah satu yang menyebabkan output kesalahan. Saya yakin Anda dapat mentransfer ini ke Maven.
sumber
Anda belum menentukan versi dalam file dependensi maven Anda mungkin itu sebabnya tidak memilih jar terbaru
Dan Anda perlu ketergantungan lain dengan
slf4j-log4j12
id artefak.Sertakan ini di file pom Anda
Beri tahu saya jika kesalahan masih belum teratasi.
Saya juga merekomendasikan Anda untuk melihat tautan ini
sumber
Tempel kode ini ke file pom.xml Anda. Ini berhasil untuk saya.
sumber
Telah lebih dari melihat masalah yang muncul itu. Percayalah ini akan menjadi bacaan yang baik untuk orang lain yang datang ke sini dengan masalah yang sama:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064
sumber
Saya memiliki masalah serupa untuk aplikasi Spring Boot - Gradle saya yang berjalan di Eclipse Luna. Saya bisa mengatasinya dengan menambahkan entri secara manual di proyek saya .classpath
Ide adalah mengikuti ini solusi . Tetapi bagaimana menerapkannya tergantung kasus ke kasus. Salah satu cara memperbaikinya adalah yang saya gunakan di atas.
Semoga ini membantu.
sumber
Ini bukan pesan kesalahan tapi peringatan. Ini dijelaskan dengan sangat jelas di situs web mereka sebagai:
Peringatan ini, yaitu bukan kesalahan, pesan akan dilaporkan jika tidak ada penyedia SLF4J yang dapat ditemukan di jalur kelas. Menempatkan satu (dan hanya satu) slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar, atau logback-classic.jar di jalur kelas akan menyelesaikan masalah. Perhatikan bahwa penyedia ini harus menargetkan slf4j-api 1.8 atau yang lebih baru.
Jika penyedia tidak ada, SLF4J akan menjadi default ke penyedia pencatat tanpa operasi (NOP).
https://www.slf4j.org/codes.html#StaticLoggerBinder
sumber
Saya memiliki masalah yang sama dalam menulis program produser Kafka menggunakan java. Kesalahan ini terjadi karena pustaka slf4j yang salah. gunakan di bawah ini ketergantungan slf4j-simple maven yang akan memperbaiki masalah Anda.
sumber