Inilah pertanyaannya: Saat menggunakan Vagrant untuk proyek Java (atau proyek bahasa terkompilasi dalam hal ini), haruskah Anda mengompilasi di VM atau di host? Selain itu, apakah Anda ingin IDE dan semua alat pengembangan Anda dijalankan dari dalam VM juga, atau di host?
Tampaknya tidak begitu jelas didefinisikan secara tepat bagaimana Java IDE dan proses kompilasi / penerapan bekerja dengan Vagrant VM. Secara umum kesan saya adalah bahwa kode diedit di host, dan dijalankan di VM, yang berfungsi dengan baik untuk bahasa yang tidak dikompilasi. Jawaban lain di Stackoverflow menyiratkan bahwa Vagrant kurang berguna untuk bahasa yang dikompilasi karena langkah kompilasi tambahan, tetapi saya masih ingin melihat apa yang bisa dilakukan.
Beberapa hal yang sudah saya pikirkan:
Mengapa mengkompilasi di VM
- jika mengkompilasi pada host, java adalah satu lagi perangkat lunak yang harus diinstal
- jika mengkompilasi pada host, versi java pada host harus selalu diperbarui secara manual dengan versi di VM
- versi java yang sesuai di host mungkin tidak tersedia (misalnya, di Mac)
Mengapa IDE di VM
- integrasi yang lebih erat antara lingkungan dan IDE, dapat menggunakan pintasan untuk menjalankan aplikasi
- dapat menghubungkan debugger untuk aplikasi java tanpa debugging jarak jauh (satu langkah run / debug)
Mengapa mengkompilasi pada host
- waktu kompilasi lebih cepat
- ingin menjaga VM sedekat mungkin dengan produksi
Mengapa memiliki IDE di host
- itu adalah konvensi gelandangan untuk mengedit kode pada host dan menjalankannya di VM
- kinerja UI yang lebih baik (X forwarding dan VNC lambat)
Apa pendapat Anda: haruskah saya menjalankan IDE saya dari dalam VM atau host? Haruskah saya mengkompilasi dari dalam VM atau host?