Saya menjalankan Intellij Ultimate dengan Tomcat dan menyebarkan perang. Semuanya diterapkan dengan baik ke direktori webapp tomcat.
Ketika saya mengubah file seperti file xhtml, apakah ada cara agar tomcat secara otomatis mengambil perubahan itu? Untuk saat ini saya perlu menyalin file dari Intellij dan menyalinnya ke direktori tempatnya berada di direktori aplikasi web tomcat. Saya tahu ada file tertentu yang perlu dikompilasi ulang, tetapi xhtmls bukan salah satunya.
Ini tidak dapat dilakukan jika Anda menyebarkan perang dengan IntelliJ IDEA. Namun, itu bisa terjadi jika Anda menyebarkan perang yang meledak . Dalam IDEA:
my-webapp-name:war
my-webapp-name:war exploded
Sekarang kapan pun Anda membuat perubahan, IDEA akan menerapkan ulang file yang diubah saat bingkai IDEA dinonaktifkan (yaitu kehilangan fokus). Diperlukan satu atau dua detik, Anda akan melihatnya di bilah status bawah di IDEA. Jelas sekali. Anda masih perlu menyegarkan browser web Anda sehingga mengambil file baru (kecuali tentu saja jika laman tersebut memiliki penyegaran otomatis ajax like fetch).
Kombinasi yang baik dengan Tomcat adalah dengan menyetel "On frame deactivation" ke "Update Resources" dan tindakan "On 'update' ke" Redeploy "atau" Restart Server ". Hal ini memungkinkan halaman statis diperbarui dengan cepat melalui penonaktifan frame, dan kelas diperbarui melalui tindakan 'perbarui'.
Sebuah perusahaan bernama ZeroTurnaround menjual JRebel yang merupakan solusi classloader dinamis. Mereka juga memiliki rangkaian lima bagian tentang subjek yang sangat bagus.
sumber
Error: Artifact 'my-webapp-name:war exploded' has invalid extension
bagaimana cara memperbaikinya?Jika Anda ingin memperbarui kelas dan sumber daya, jalankan Tomcat dalam mode Debug . Dalam mode ini IntelliJ memperbarui kelas dan sumber daya tanpa masalah (hot swap).
Punya masalah yang sama. IntelliJ tidak memperbarui proyek saya, karena saya menjalankan sebagai "mode Jalankan". Ketika saya menjalankan dalam mode debug dan menekan Ctrl+ F10, kelas dan sumber daya diperbarui.
sumber
Saya telah menemukan cara yang lebih baik.
Di Eclipse kami secara otomatis membuat, mengkompilasi + memuat ulang file statis. Sebenarnya file statis disajikan langsung dari src / main / webapp .
Di IntelliJ alih-alih melayani langsung dari src / main / webapp , ada folder yang dibuat di target, di mana Anda akan memiliki salinan src / main / webapp Anda dan juga konteks lain yang terkait .. web-inf / class / lib.
Jika Anda menempatkan alih-alih target keluaran artefak yang meledak ke src / main / webapp , itu tidak akan menimpa file sumber Anda, dan itu akan ditayangkan secara langsung, Anda tidak perlu menekan - perbarui sumber daya / perbarui sumber daya dan kelas
Jadi yang perlu Anda lakukan di IntelliJ adalah
Setelah ini, jika Anda memiliki pekerjaan yang mengubah file statis dari luar IntelliJ, Anda akan segera melihat perubahan tanpa membuka IntelliJ dan Perbarui Sumber Daya , dan untuk kelas Anda memiliki makro yang menyimpan, dan kompilasi (Catatan: Anda juga bisa menekan Kompilasi / Kompilasi ulang: cmd + shift + F9 / cmd + F9 - jika Anda memiliki beberapa editor yang terbuka akan melihat bahwa editor * kotor Anda tidak akan kotor, dan perubahan (kelas) akan dimuat ulang)
sumber
Itu hanya mungkin ketika Anda menyebarkan folder perang yang meledak, mengaktifkan pemuatan ulang panas, dan memulai kucing jantan dalam mode debug.
Ini adalah langkah-langkah untuk mencapai ini.
sumber
jika Anda memiliki multipartfile yang ingin Anda lihat / putar segera, unggah langsung ke folder target. * (hanya mengubah lokasi tulis ke folder target / statis /)
Anda akan dapat segera melihat file Anda tanpa harus memulai ulang IDE
sumber