Platform: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
OS: Windows 7
Jadi saya punya situasi aneh dengan IntelliJ yang membuat saya benar-benar bingung. Saya menyiapkan proyek Maven dan menambahkan log4j sebagai dependensi dalam file pom.xml. Inspeksi IDEA berjalan dengan baik dan unit saya menguji semua kompilasi dan berjalan.
Saya kemudian menambahkan jmime library hunnysoft ke repositori maven lokal saya menggunakan mvn install: install-file sebagai berikut.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven menginstal file jar dengan baik ke repositori lokal saya.
Saya kemudian pergi ke Pengaturan IntelliJ => Maven => Layanan Repositori dan Memperbarui repositori lokal saya (sehingga IntelliJ akan mengindeks ulang isi repositori).
Akhirnya, saya menambahkan dependensi berikut ke file pom.xml saya (tepat di atas dependensi log4j).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Sekarang saya membuat kelas baru sebagai berikut:
package com.stackoverflow.question;
import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
Sekarang untuk keanehannya. Mekanisme niat IntelliJ mengambil dan mengenali impor Logger di file maven pom. Namun, untuk semua impor hunnysoft ia melaporkan: "Tidak dapat menyelesaikan simbol 'ByteString / Field / FieldBody'", TAPI Bangun => Kompilasi 'StackOverflowQuestion.java' mengkompilasi semuanya dengan benar dan unit test yang saya buat untuk kelas ini berjalan dengan baik (meskipun niat menandai panggilan untuk membuat () sebagai area masalah juga).
Jadi di suatu tempat, entah bagaimana IntelliJ mengabaikan file jmime.jar untuk subsistem niat. Saya bingung karena dependensi log4j berfungsi dengan baik dan semuanya mengkompilasi dan berjalan dengan baik. F12 ("Pergi Ke Deklarasi") bekerja pada impor Logger, tetapi istirahat pada semua impor jmime.
Oh, satu hal lagi, jika saya pergi ke tampilan 'Package' di jendela "Projects" paket "com.hunnysoft.jmime" muncul dan saya dapat melihat SEMUA kelas yang saya impor dalam potongan kode di atas di bawah "Libraries" . Menghapus ketergantungan di atas dari file pom.xml menyebabkan paket ini menghilang dan kompilasi rusak.
Tampaknya classpath inspeksi rusak, tetapi tampaknya tidak ada pengaturan untuk ini di mana saja di Pengaturan => Niat | Area kompiler (bukan yang saya harapkan pengaturan seperti itu, saya percaya IDEA harus sudah tahu classpath yang benar berdasarkan file pom dan JDK).
Sebagai percobaan terakhir saya membuat proyek aplikasi J2SE standar baru (tanpa menggunakan maven) dan menambahkan file jmime.jar langsung ke proyek sebagai salah satu perpustakaannya. Saya mengalami masalah yang sama persis seperti yang dijelaskan di atas dalam proyek baru ini.
Ini MANIFEST.MF dari file jar jmime.
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
Saya tidak melihat sesuatu yang tidak biasa dalam file jar ini.
Dugaan terbaik saya adalah bahwa mungkin masalahnya mungkin karena masalah ketergantungan yang hilang. Tapi AFAIK jmime seharusnya mandiri (JarAnalyzer tidak datang dengan apa pun, tapi saya tidak yakin itu akan terjadi jika toples ketergantungan hilang).
Jadi, ada yang punya IDEA?
sumber
Jawaban:
Pertama-tama Anda harus mencoba
File | Invalidate Caches
dan jika itu tidak membantu, hapus direktori sistem IDEA . Kemudian impor kembali proyek Maven dan lihat apakah itu membantu.Dalam beberapa kasus aneh, kelas yang dikompilasi dapat melaporkan informasi yang salah dan membingungkan IDEA. Verifikasi bahwa kelas-kelas dari toples ini melaporkan nama yang benar menggunakan javap .
sumber
Trik berikut ini menyelesaikan masalah bagi saya:
Versi ide saya adalah 12.0.4
sumber
View -> Tool Windows -> Maven Projects
lalu klik ikon siklus panah.Tidak ada solusi di atas yang berfungsi untuk saya. Apa yang dilakukan adalah menghapus file main.iml secara manual dan tiba-tiba berfungsi.
sumber
Untuk pengguna Gradle:
Anda mungkin perlu menyinkronkan proyek Anda dengan
build.gradle
file Anda .Anda dapat mengklik kanan pada file gradle Anda di bawah panel Project untuk melakukan ini, tetapi itu sepertinya tidak melakukan apa-apa untuk saya (saya menduga ada bug dalam versi saya). Anda akan tahu jika ini terjadi karena itu tidak akan memulai tugas IntelliJ yang akan Anda tunggu. Sebagai gantinya, buka panel Gradle Tool , lalu klik tombol sinkronisasi (segarkan). Ini berfungsi untuk saya ketika invalidating cache dan restart tidak.
Keadaan saya sendiri: Saya menggunakan proyek Scala dengan Gradle dan harus melakukan ini.
sumber
View > Tool Windows > Gradle
mavenCentral() could not be resolved
sampai saya menambahkan kembali konfigurasi jUnit (saya telah mem-porting seluruh proyek ke Gradle dengan membuat proyek Gradle baru, lalu menyalin semua file sumber).Ini disebutkan dalam jawaban lain untuk pertanyaan yang sama di sini , tetapi ini saja yang memperbaiki ini untuk saya. Saya melakukan semua pembangunan di terminal terpisah, di luar IntelliJ. Jadi kebutuhan cache untuk memiliki izin yang tepat ditetapkan untuk aplikasi IntelliJ untuk membacanya.
Jalankan dari folder root proyek.
sumber
Satu langkah ekstra, ketika saya melakukan File -> Valid Cache dan restart IDE, buka proyek. Itu muncul kotak roti di kanan atas menanyakan saya apakah akan mengaktifkan impor otomatis dan yang memecahkan masalah.
sumber
Hal lain yang perlu diperiksa: Pastikan dependensi tidak terduplikasi. Dalam kasus saya, saya menemukan bahwa modul yang memperlihatkan perilaku ini salah konfigurasi sebagai berikut: ia memiliki ketergantungan pada modul lain, dan ia memiliki ketergantungan pada tabung yang dihasilkan oleh modul lainnya. Ini berarti untuk setiap simbol yang dirujuk dalam rangkap dua, dan tidak jelas.
sumber
Nama modul yang tidak konsisten / duplikat dalam struktur proyek menyebabkan masalah ini bagi saya.
File -> Project Strucutre -> Modules
Ini dapat terjadi ketika IntelliJ tidak dimatikan dengan benar dan dengan demikian tidak dapat menyimpan nama modul yang diganti dengan benar.
sumber
Apakah perbaikan telah dipublikasikan? Muncul masalah yang awalnya memengaruhi v11 / 12 karena "Compiler overhaul" pada tahun 2013. Dengan diskusi tentang masalah terkait di Jira hingga akhir 2014. http://youtrack.jetbrains.com/issue/IDEA-98425
Juga pada Jira IDEA-98425 ditandai tetap tetapi tidak diverifikasi (pada v12.0.3). Tak satu pun dari berikut kerja-sekitar tekad membantu ini "Tidak dapat Selesaikan Symbol" masalah dengan Versi 13.1.1 pada Windows
Sebuah. Hapus folder .IdealIC13 (Lalu, File \ Batalkan Cache / Restart)
b. Dari jendela Maven Projects ,
b.1 mvn -U idea: idea -〉 Menjalankan tujuan pakar ini seharusnya memuat ulang dependensi. Ini berfungsi sebelumnya, tetapi sejak FRI terakhir, mengeksekusi gol pakar ini gagal ketika mencoba mengkompilasi ulang proyek (Tentu saja gagal sebagai "Tidak dapat menyelesaikan Simbol", itulah yang saya coba perbaiki dengan menjalankan perintah ini di tempat pertama) mvn -versi - menunjukkan versi pakar referensi 3.2.5 dan berfungsi
b.2 Cukup klik kanan proyek, dan masukkan kembali
b.3 File \ Batalkan Cache / Restart
c. Mencoba kedua Aktifkan & Nonaktifkan pengaturan ini: File -> Pengaturan -> Maven -> Mengimpor -> "Gunakan maven3 untuk mengimpor proyek"
d. Pengaturan \ Maven \ Kebijakan pembangunan gagal multi-proyek = Gagal pada akhirnya (bukan Default)
Tidak ada yang berhasil. Apa yang terjadi dengan dukungan IntelliJ pada Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
Dari sejarah rilis JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
Saya akan menganggap v12 diperbaiki (meskipun tidak diverifikasi ) akan dimasukkan dalam rilis berikutnya. Adakah yang memiliki masalah serupa dengan versi IntelliJ yang mana? Silakan bagikan pengalaman Anda. Dukungan maven IntelliJ tampaknya rusak.
sumber
Struktur Proyek Saya:
Apa yang berhasil:
Klik kanan pada
scala
folder, dan klik "Tandai Direktori sebagai Sumber Root".sumber
Tidak ada jawaban lain yang bekerja untuk saya. Impor saya tidak diselesaikan karena IntelliJ menunjuk ke file .m2 yang salah.
Versi IntelliJ: Ide IntelliJ 2018.1.5
Lokasi saya untuk direktori .m2 diarahkan ke jalur yang salah. Yang saya lakukan untuk memperbaikinya adalah kembali menunjuk IntelliJ ke direktori .m2 kanan dan memperbaruinya.
Pertama, pergi ke: File-> Pengaturan-> Build, Eksekusi, Deployment-> Build Tools-> Maven
Saya harus mengubah file pengaturan Pengguna: dan repositori Lokal: ke lokasi yang benar dari direktori .m2 saya.
Setelah ini pergi ke: File-> Pengaturan-> Build, Eksekusi, Deployment-> Build Tools-> Maven-> Repositori
dan klik tombol Perbarui.
sumber
Untuk alternatif lain.
Saya mendapat masalah ini juga ketika saya menggunakan JDK7_07. Saya mencoba semua jawaban di sini (kecuali menghapus Direktori Sistem IDEA). Tapi, saya masih punya masalah. Jadi yang saya lakukan adalah:
Instal JDK terbaru (itu adalah JDK7_45), dan atur JDK Intellij ke yang baru, dan itu berfungsi.
sumber
Saya baru saja mengalami masalah ini dan itu tidak akan hilang. Saya akhirnya menghapus direktori konfigurasi IntelliJ
~
dan membangun kembali proyek IntelliJ saya dari awal. (Ini hanya memakan waktu sekitar 15 menit pada akhirnya, dibandingkan dengan menghabiskan satu jam mencoba memecahkan masalah dengan file cache, dll.)Perhatikan bahwa dugaan saya adalah bahwa masalah awal disebabkan oleh sesuatu seperti
javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB: pada 2018, tautan itu sudah mati, tetapi archive.org memiliki salinan halaman dari sekitar ketika jawaban ini pertama kali ditulis-ditulis.) Atau masalah ruang disk / memori menyebabkan Java macet. IntelliJ sepertinya baru saja rusak.sumber
Jika proyek pakar Anda adalah proyek multi-modul, periksa apakah beberapa modul diabaikan oleh intellij.
gs-multi-module
pada gambar berikut).Unignore Projects
.Kemudian tunggu intellij untuk menyelesaikan pengindeksan, setelah itu akan berfungsi.
sumber
Setelah membatalkan cache saya dan memulai kembali; dan mengkonfirmasikan pengaturan pakar saya baik-baik saja, saya masih melihat "Tidak dapat menyelesaikan simbol" untuk modul yang saya tentukan sebagai ketergantungan. Ternyata saya sudah mengatur ke lingkup yang salah.
Anda dapat memeriksa dengan mengklik kanan modul Anda dan memilih Buka Pengaturan Modul. Klik tab ketergantungan dan verifikasi bahwa cakupan ketergantungan Anda yang tidak dapat diselesaikan diatur ke Kompilasi.
sumber
Mengimpor kembali proyek berhasil untuk saya. Klik kanan pada Project -> Maven -> Reimport
ketika saya melakukan File -> Valid Cache dan restart IDE, buka proyek. Itu menunjukkan dialog di kanan atas "Perubahan Maven terdeteksi" dan memberikan opsi untuk mengimpor dan mengaktifkan impor otomatis. Bahkan setelah mengimpor proyek di sini, saya memiliki masalah yang sama. Langkah di atas menyelesaikan masalah.
sumber
Terkadang, saya hanya membuka struktur proyek, dan klik proyek, lalu pilih versi SDK .
sumber
Dalam kasus saya, saya mencoba untuk membuka proyek boot spring dari IntellijIdea mendapat masalah yang sama seperti tidak dapat mengimpor semua file yang terkait dengan spring.
Lalu saya lakukan:
Sekarang semuanya bekerja dengan baik seperti yang diharapkan.
Saya telah melihat banyak jawaban di sini tetapi saya akhirnya menemukan solusi ini. Ini dapat digunakan untuk orang seperti saya.
sumber
Ya, sepertinya Anda harus membuat perpustakaan yang berisi JAR yang Anda butuhkan dan menambahkannya sebagai dependensi dalam modul Anda.
sumber
Dalam kasus saya, hanya buildDir yang dihapus. Dalam hal ini,
File | Invalidate Caches
tidak berfungsi.Ketika saya lakukan
Build | Make Project
sebelumnyaFile | Invalidate Caches
, semuanya bekerja dengan baik.sumber
sumber
Tidak ada solusi di atas yang menyelesaikannya untuk saya. Saya memiliki masalah yang sama ketika kode dikompilasi dengan baik tetapi IntelliJ menunjukkan bahwa ia tidak dapat menemukan impor. Meskipun IntelliJ menyarankan impor di tempat pertama dari penyelesaian kode.
Solusi saya adalah memindahkan semuanya ke paket default, menghapus
com.foo.bar
paket, lalu membuatnya lagi dan memindahkan semuanya kembali.sumber
Solusi yang disarankan tidak berfungsi. Saya harus membatalkan beberapa proyek, dengan mengklik kanan pada pom => maven => proyek unignore.
Kemudian setelah a
di konsol, IntelliJ senang lagi. Tidak tahu bagaimana proyek menjadi diabaikan ...
sumber
mvn idea:idea
bekerja untukku. Ditemukan di sini . Menghabiskan lebih dari satu jam, semoga membantu seseorangsumber
Hapus file: iml yang ditemukan di java dan folder tes di dalam proyek dan batalkan dan mulai ulang.
Ia akan bertanya apakah saya dapat menghapus proyek. Masukkan Ya. Kesalahan akan padam.
sumber
Apa yang berhasil bagi saya adalah "Tandai sebagai direktori sumber root" direktori di mana kelas bertanda merah, setelah itu tanda merah menghilang. Tampaknya karena alasan tertentu itu tidak ditandai.
sumber
Untuk proyek Gradle:
<problematic-project-root>/.idea
direktori<problematic-project-root>/.gradle
direktori.iml
file di<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
sumber
jika maven memproyeksikan maka cukup buka pengaturan -> build tools -> maven -> importing. centang kotak "impor proyek pakar otomatis". akan menyelesaikan masalah.
sumber
Cache tidak valid bekerja untuk saya tetapi setelah menjalankan aplikasi memiliki kesalahan yang sama.
Jadi saya mencoba ( Intellij ):
1 - Bilah menu - Refactor | Bangun | Jalankan | Alat - klik Bangun lalu Buat Ulang Proyek
2 - MVN bersih
3 - Klik kanan pada proyek> Maven> Hasilkan Sumber dan Perbarui Folder
Semoga ini berhasil untuk Anda.
Terima kasih
sumber
Atau mungkin file yang Anda impor terlalu besar. Ini adalah kasus saya, ketika saya mengubah properti Intellij: iead.max.intellisen.filesize (path adalah $ {idea dir} /bin/idea.properties) ke nilai yang lebih besar, seperti 25000, dan restart IDE, masalahnya hilang. Semoga ini membantu.
sumber