Kemarin saya beralih ke IntelliJ IDEA dari Eclipse.
Saya menggunakan JRebel dengan WebSphere Server 7 juga.
Segalanya sekarang tampaknya berfungsi agak baik, kecuali ketika saya memodifikasi file Java, dan tekan save , IntelliJ tidak mengkompilasi ulang file tersebut, agar JRebel mengambilnya.
Fitur Eclipse " Build Automatically " menyelesaikan masalah ini.
Di IntelliJ IDEA, saya harus menekan CTRL+ SHIFT+ 9untuk mengkompilasi ulang kelas yang relevan untuk JRebel untuk mengambilnya. Jika perubahan dilakukan di dua file , saya harus melakukan ini pada masing-masing dan satu dari mereka dan karena IntelliJ menggunakan mekanisme save all, sangat sulit untuk mengetahui apa yang harus dikompilasi ulang secara manual yang saya tidak benar-benar tertarik melakukan keduanya.
Apakah tidak ada cara untuk membuat IntelliJ melakukan ini sendiri ?
Ctrl
+ sajaF9
? Itu akan membangun seluruh proyek dan jika hanya dua file telah berubah maka mereka akan dibangun kembali.Jawaban:
DIPERBARUI
Untuk rilis IntelliJ IDEA 12+ kami dapat membangun sumber yang diedit secara otomatis jika kami menggunakan opsi kompiler eksternal. Satu-satunya hal yang diperlukan adalah memeriksa opsi " Bangun proyek secara otomatis ", yang terletak di bawah pengaturan " Penyusun ":
Juga, jika Anda ingin menyebarkan panas, saat aplikasi sedang berjalan atau jika Anda menggunakan spring boot devtools Anda harus mengaktifkan
compiler.automake.allow.when.app.running
dari registry juga. Ini secara otomatis akan mengkompilasi perubahan Anda.Menggunakan Ctrl+ Shift+ A(atau ⌘+ Shift+ Adi Mac) ketik
Registry
begitu jendela registri terbuka, temukan dan aktifkancompiler.automake.allow.when.app.running
, lihat di sini:Untuk versi yang lebih tua dari 12, Anda dapat menggunakan plugin EclipseMode untuk membuat IDEA secara otomatis mengkompilasi file yang disimpan.
Untuk kiat lainnya, lihat panduan "Migrasi Dari Eclipse ke IntelliJ IDEA" .
sumber
Harap ikuti kedua langkah:
1 - Aktifkan Automake dari kompiler
make project automatically
Make Project automatically
fitur2 - Aktifkan Automake saat aplikasi sedang berjalan
Registry
compiler.automake.allow.when.app.running
dan aktifkan atau klik kotak centang di sebelahnyaCatatan: Mulai ulang aplikasi Anda sekarang :)
Catatan: Ini juga harus memungkinkan reload langsung dengan devtool booting pegas.
sumber
PERINGATAN
Plug-in Mode Eclipse sudah usang dan tidak kompatibel dengan build IDEA 12+ terbaru. Jika Anda menginstalnya, IDE akan menunggu setiap perubahan file dan akan merespons sangat lambat.
IntelliJ IDEA tidak menggunakan pembuatan otomatis, mendeteksi kesalahan dengan cepat, bukan melalui kompiler. Mirip dengan mode Eclipse akan tersedia di IDEA 12 :
Gunakan
Build
|Make
, ia memanggil proses make tambahan yang hanya akan mengkompilasi file yang diubah dan bergantung (ini sangat cepat).Ada juga entri FAQ yang dapat membantu.
Pembaruan pada fitur make otomatis : Ketika konfigurasi run / debug dijalankan,
Make project automatically
tidak berpengaruh. Kelas pada disk hanya akan berubah padaBuild
|Make
. Ini adalah keputusan desain inti karena perubahan kelas pendapat kami pada disk harus selalu di bawah kendali pengguna. Make otomatis bukanlah peniru fitur Eclipse, ini berfungsi secara berbeda dan tujuan utamanya adalah untuk menghemat waktu menunggu kelas siap ketika mereka benar-benar diperlukan (sebelum menjalankan aplikasi atau tes). Make otomatis tidak menggantikan kompilasi eksplisit yang masih perlu Anda memicu seperti dalam kasus yang dijelaskan dalam pertanyaan ini. Jika Anda mencari perilaku berbeda, plug-in EclipseMode yang tertaut dalam FAQ di atas akan menjadi pilihan yang lebih baik.sumber
Anda dapat keymap
ctrl+s
untuk menyimpan DAN mengkompilasi dalam satu langkah. Buka pengaturan keymap dan cariCompile
.sumber
Sebenarnya tidak ada perbedaan karena keduanya membutuhkan 1 klik:
Solusi paling sederhana hanyalah membiasakan diri dengannya. Karena ketika Anda menghabiskan sebagian besar siang hari Anda di IDE, maka lebih baik memiliki kebiasaan cepat dalam satu daripada kebiasaan lambat di beberapa dari mereka.
sumber
Saya akhirnya merekam Makro untuk disimpan dan dikompilasi dalam satu langkah, dan keymap
Ctrl+s
untuk itu.sumber
Saya berhasil menyelesaikan ini menggunakan makro.
Saya mulai merekam makro:
Beri nama sesuatu yang bermanfaat seperti, "SaveAndMake".
Sekarang hapus saja Save all keybinding, dan tambahkan keybinding yang sama ke makro Anda!
Jadi sekarang, setiap kali saya menyimpan, menyimpan dan membuat kompilasi kotor, dan jRebel sekarang mendeteksi semua perubahan dengan benar.
sumber
Harap ikuti langkah-langkah ini dengan seksama untuk mengaktifkannya.
1) buat proyek Spring Boot dengan SB V1.3 dan tambahkan "Devtools" (1 *) ke dependensi
2) memohon Bantuan-> Temukan Tindakan ... dan ketik "Registry", dalam dialog cari "automake" dan aktifkan entri " compiler.automake.allow.when.app.running ", tutup dialog
3) aktifkan kompilasi latar belakang di Pengaturan-> Bangun, Eksekusi, Deployment-> Kompiler "Buat proyek secara otomatis"
4) buka Spring Boot run config, Anda harus mendapatkan pesan peringatan jika semuanya dikonfigurasi dengan benar
5) Jalankan aplikasi Anda, ubah kelas saat bepergian
Silakan laporkan pengalaman dan masalah Anda sebagai komentar untuk masalah ini.
klik di sini untuk info lebih lanjut
sumber
Satu-satunya hal yang bekerja untuk saya dalam proyek pakar saya yang terpengaruh oleh ini adalah menambahkan tujuan "test-compile" ke konfigurasi menjalankan tes unit saya. Solusi yang sangat kikuk, tetapi berhasil.
sumber
Intellij gagal diam-diam ketika menemukan masalah kompilasi dalam modul lain, dan kemudian membangun otomatis tidak dilakukan. Jadi periksa
Problems
jendelamusumber
Saya memiliki masalah yang sama. Saya menggunakan "Mode hemat daya", yang mencegah kompilasi secara bertahap dan menunjukkan kesalahan kompilasi.
sumber
Gunakan plugin Reformat dan Kompilasi (terinspirasi oleh plugin Save Actions dari Alexandre DuBreuil):
https://plugins.jetbrains.com/plugin/8231?pr=idea_ce
Saat ini saya hanya menawarkan file jar, tetapi ini adalah bagian terpenting dari kode:
sumber
Edit Konfigurasi Run / Debug Anda sehingga opsi Build dipilih sebelum diluncurkan
Setelah opsi Bangun dipilih
Solusi di atas bekerja untuk saya saat mengerjakan test suite JBehave saya
sumber
Itu tidak berfungsi untuk saya karena memiliki modul yang tidak perlu dalam struktur proyek saya. Tes dieksekusi menggunakan modul lain, saya kira.
Saya tidak tahu bagaimana akhirnya seperti itu tetapi menghapusnya memecahkan masalah.
Pastikan pengaturan Run / Debug Anda menggunakan modul yang Anda buat dengan penyimpanan otomatis.
Contoh: lihat modul di
Anda dapat mengubah modul dalam Struktur Proyek - Modul
sumber
Saya memiliki masalah yang sama. Saya pikir akan tepat untuk memeriksa apakah kelas Anda dapat dikompilasi atau tidak. Klik kompilasi ulang (Ctrl + Shift + F9 secara default). Jika tidak berfungsi maka Anda harus menyelidiki mengapa itu tidak dikompilasi.
Dalam kasus saya kode tidak kompilasi otomatis karena ada kesalahan tersembunyi dengan kompilasi (mereka tidak ditampilkan di log di mana saja dan maven clean-install berfungsi). Rootcause tidak benar pada Struktur Proyek -> Konfigurasi modul, jadi Intellij Idea tidak dapat membangunnya sesuai dengan konfigurasi ini.
sumber
saya punya masalah yang sama dan juga file icon masalah dalam intellij, jadi saya dihapus dengan
.idea
folder dan re proyek impor memecahkan masalah saya.sumber
Saya mendapatkan kesalahan: beberapa stoples tidak ada di classpath. Jadi saya hanya menghapus toples yang rusak dan melakukan perrform di bawah langkah-langkah ini
sumber
Tidak cukup poin untuk mengomentari jawaban yang ada, tetapi mirip dengan beberapa orang di atas, saya akhirnya hanya menambahkan makro & keymap untuk Mengatur Impor / Format / SaveAll / FastReload (F9) / Sinkronisasi .
Sinkronisasi ditambahkan karena tampaknya menjadi satu-satunya cara saya juga dapat melihat pembaruan dalam sumber daya yang dimodifikasi oleh alat / pengamat pembuatan eksternal (yaitu, webpack).
Prosesnya lebih lambat daripada gerhana - dan untuk penyegaran file eksternal sering harus menjalankan perintah beberapa kali - tetapi anggaplah saya bisa hidup dengannya.
sumber