Saya memiliki proyek maven yang dibangun tanpa masalah dari baris perintah. Namun, saat saya membangunnya dengan IntelliJ, saya mendapatkan error:
java: FileName.java:89: cannot find symbol
symbol : variable log
Tidak ada log yang ditentukan atau diimpor dalam file java, tetapi ada
@Slf4j
final public class FileName {
pernyataan sebelum badan kelas yang harus mendefinisikan kelas log.
Di jendela struktur proyek, kelas untuk:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
terdaftar di bawah perpustakaan dan diindikasikan sebagai telah diunduh dan tersedia.
Adakah ide mengapa ini akan dibangun dengan maven melalui baris perintah, tetapi tidak melalui IntelliJ dan bagaimana menyelesaikan masalah?
intellij-idea
slf4j
lombok
pengguna1991839
sumber
sumber
Jawaban:
Selain memasang plugin Lombok , pastikan juga bahwa
Enable annotation processing
kotak centang " " dicentang di bawah:Catatan: dimulai dengan IntelliJ 2017,
Enable Annotation Processing
kotak centang " " telah dipindahkan ke:sumber
Agaknya, itulah penjelasan Lombok @ Slf4j yang Anda gunakan. Anda harus menginstal plugin Lombok di IntelliJ jika Anda ingin IntelliJ mengenali anotasi Lombok. Jika tidak, apa yang Anda harapkan jika mencoba menggunakan bidang yang tidak ada?
sumber
Di Intellij versi 2016, 2017, aktifkan Preferensi -> Kompiler -> Prosesor Anotasi tidak berfungsi untuk saya!
Kotak centang tambahan berikut membantu:
sumber
2019:
Dapatkan plugin dan Anda diurutkan ...
File> Pengaturan> Plugin
sumber
Saya mungkin membatalkan topik yang sudah mati tetapi solusi sederhana adalah memeriksa dependensi Anda (misalnya pom Maven) jika Anda menyertakan logback-core dan logback-classic .
Slf4j hanyalah antarmuka, Anda memerlukan implementasi konkret di belakangnya agar berfungsi.
Saya telah ditipu dua kali dengan IDEA yang mengacaukannya, sekarang saya siap melakukannya: D
sumber
Bekerja untuk saya !!! Itu gagal di CircleCI & di Jenkins juga.
Jika Anda Pengguna Gradle, coba tambahkan berikut ini ke dalam dependensi Anda:
sumber
Di IDEA 13 ini sepertinya tidak lagi menjadi masalah, Anda hanya perlu menginstal plugin Lombok.
sumber
Saya baru saja menginstal versi ide terbaru 2108.1 dan menemukan masalah ini, setelah menginstal plugin lombok dan memulai ulang Ide mengatasinya.
sumber
Jika Anda menggunakan maven, coba tambahkan jalur Lombok ke
maven-compiler-plugin
daftar pemroses anotasi seperti yang ditunjukkan di bawah ini.Ubah versi sesuai versi Lombok Anda. Selain itu pastikan Anda telah melakukan hal berikut
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
. Bagi saya keduanya,Obtain processors from project classpath
danProcessor path
sedang bekerja. Jadi tidak yakin apa yang akan berhasil untuk Anda, tetapi coba mana yang berhasil.Dan daripada memotret dalam kegelapan selama berjam-jam. Membaca sedikit bagaimana prosesor anotasi bekerja dan digunakan oleh compiler dapat membantu. sekian baca di bawah ini.
http://hannesdorfmann.com/annotation-processing/annotationprocessing101
sumber
Ini berhasil untuk saya:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
Centang pada 'aktifkan pemrosesan anotasi'.
Apply
Menutup
sumber
Saya mencoba hampir semua jawaban yang disebutkan tetapi tidak ada yang berhasil untuk saya. Bangunan gradle saya selalu gagal. Baru saja menemukan solusi ini:
Tambahkan
annotationProcessor 'org.projectlombok:lombok'
build.gradle Anda.Ini berhasil untuk saya.
sumber
Menghapus anotasi @ Slf4J dari kelas dan kemudian menambahkannya kembali berhasil untuk saya.
sumber
1 Ketergantungan gradle lombok saya:
2 Setelah mengaktifkan "Anotasi ..." di IDEA (Pengaturan), dengan mempertimbangkan bahwa Anda telah menginstal plugin Lombok, itu menyelesaikan masalah saya yang sama
sumber
Saya melihat masalah ini dengan versi Lombok yang lebih lama saat melakukan kompilasi dengan JDK8. Mengatur proyek kembali ke JDK7 membuat masalah hilang.
sumber
Ini tidak akan menjadi masalah OP, tetapi bagi siapa pun yang mencoba semuanya tanpa hasil:
Saya mengalami gejala yang serupa. Setiap kali saya membangun setelah
mvn clean
, itu tidak akan menemukanlog
, ataugetXYZ()
, ataubuilder()
, atau apa pun.Setelah membaca setiap jawaban yang saya dapat menemukan tentang masalah QueryDSL / JPA / Hibernate / Lombok / IntelliJ / Maven tidak berhasil, saya menemukan bahwa pelakunya adalah impor statis
@Getter
tunggal dari metode yang dianotasi pada bidang statis .Musim semi 1.15.14. RELEASE, Intellij 2019.1.1
sumber
Ini bukan masalah IntelliJ. Jika Anda mencoba di bawah konsol, jalankan mvn install , juga putus. Semua anotasi dari lombok.extern perlu menambahkan dependensi. Paket ini mengelompokkan anotasi berikutnya:
Misalnya, untuk Slf4j perlu menambahkan dependensi ini ke pom.xml Anda
sumber
Setelah mengaktifkan pemroses anotasi dan menginstal plugin lombok, itu masih tidak berfungsi. Kami mengatasinya dengan mencentang opsi Ide "Delegasikan IDE build to gradle"
sumber
Yang menyelesaikan masalah bagi saya adalah mencentang kotak centang "Gunakan registri plugin" di pengaturan Maven.
Jalurnya adalah: File -> Preferences -> Build, Execution, Deployment -> Build Tools -> Maven
sumber
Hapus folder .idea dan file .iml di setiap modul dan buat ulang solusinya.
sumber
Saya memiliki plugin Lombok, anotasi diaktifkan, itu dikompilasi dari baris perintah - semuanya dan masih tidak melihat proyek saya sebagai maven (semua dependensi maven berwarna merah di file sumber). Kemudian saya mengklik SHIFT dua kali dan mencari 'maven' dan di antara hasil ada 'Reload all Maven Projects'. Setelah menjalankannya, tab Maven muncul dan saya dapat mengkompilasi, dan semua garis bawah merah di kode sumber menghilang.
sumber
Hal yang sederhana tetapi saya mengetahuinya adalah: Saya ketinggalan menambahkan
@Log
ke kelas.Ini dapat membantu seseorang.
sumber
Saya memiliki masalah yang sama; Saya menggunakan gradle dan IDEA;
Ternyata hal itu disebabkan oleh versi gradle yang salah.
Dalam gradle \ wrapper \ gradle-wrapper.properties, ini adalah:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
Namun, saya menetapkan versi di IDEA menjadi
D:\Library\gradle-5.2.1
Setelah menurunkan versi gradle menjadi 4.10.x, masalahnya hilang.
sumber
Cobalah untuk membuat
lombok.config
file di bawah direktori dasar proyek dan berikanlombok.log.fieldName
nilai.Contoh:
lombok.log.fieldName = LOG
sumber