Ecco la domanda: quando si utilizza Vagrant per un progetto Java (o qualsiasi progetto di linguaggio compilato per quella materia), è necessario compilare nella VM o sull'host? Inoltre, vorresti che il tuo IDE e tutti i tuoi strumenti di sviluppo vengano eseguiti anche dall'interno della VM o sull'host?
Sembra non essere ben definito esattamente come funzionano un IDE Java e il processo di compilazione / distribuzione con una VM Vagrant. In genere la mia impressione è che il codice venga modificato sull'host ed eseguito sulla VM, che funziona alla grande per i linguaggi non compilati. Altre risposte su Stackoverflow hanno implicato che Vagrant è meno utile per i linguaggi compilati a causa del passaggio di compilazione aggiuntivo, ma voglio comunque vedere cosa si può fare.
Alcune cose a cui ho già pensato:
Perché compilare sulla VM
- se si compila su host, java è un altro software da installare
- se si compila su host, la versione java su host deve essere aggiornata manualmente con quella sulla VM
- la versione java corrispondente sull'host potrebbe non essere disponibile (ad esempio, su un Mac)
Perché avere IDE sulla VM
- più stretta integrazione tra ambiente e IDE, può utilizzare scorciatoie per eseguire l'applicazione
- può collegare il debugger per le applicazioni java senza debug remoto (esecuzione / debug in un passaggio)
Perché compilare sull'host
- tempi di compilazione più rapidi
- desidera mantenere la VM il più vicino possibile all'aspetto della produzione
Perché avere IDE sull'host
- è la convenzione vagabonda per modificare il codice sull'host ed eseguirlo sulla VM
- migliori prestazioni dell'interfaccia utente (l'inoltro X e VNC sono lenti)
Cosa ne pensi: devo eseguire il mio IDE dall'interno della VM o dall'host? Devo compilare dall'interno della VM o dell'host?