2013-02-15 4 views
21

Quando si lavora con l'ambiente di sviluppo normale java/javaee, l'installazione è di avere tutto in locale (installazione jdk, database, server delle applicazioni, ecc.). So che molte persone nel mondo di ruby ​​/ js usano macchine virtuali per lo sviluppo (principalmente con vagabondi).È vagabondo utile per gli sviluppatori java/javaee?

Mi chiedo se esiste un modo efficace per configurare env simili per java/javaee. Sospetto di poter installare facilmente server di database e server applicazioni insieme alla versione jdk su tale macchina virtuale, ma per quanto riguarda lo sviluppo regolare? Devo ancora avere jdk installato localmente, giusto? (Ho bisogno del mio IDE per funzionare correttamente) Ho bisogno di Maven per costruire il mio progetto, così ho bisogno di un repository locale completo. E poi ho bisogno di distribuire la mia app sul server delle app della macchina virtuale.

Qui non vedo alcun vantaggio reale (avendo ancora parti di ambiente su entrambe le macchine). Hai esperienza con questo e puoi condividere con me?

+1

È possibile modificare la domanda in uno stato in cui può essere non chiusa destra?Stavo cercando Java su vagabondo e sapevo cosa stavi ottenendo e ho avuto le stesse domande io stesso. Penso ancora che sia utile. – Jay

risposta

3

Non è del tutto chiaro cosa cerchi in particolare in termini di risposta.

IMO il valore delle macchine virtuali non è tanto per lo sviluppo ambiente , ma la runtime ambiente. Cose come messaggistica/accodamento, server, database, server cloud (ad esempio, Swift), ecc.

Questo è indipendente dalla lingua. Ad esempio, abbiamo macchine virtuali (non basate su Vagrant) che includono Hadoop/HDFS/HBase, Swift, RabbitMQ e una varietà di contenitori.

È possibile che distribuisca a tali computer, ma che gli strumenti di sviluppo siano eseguiti localmente. IMO ci sarebbero pochi motivi per svilupparsi sulla macchina virtuale, sebbene non ci sia ragione per cui lo non possa essere, specialmente se sei a tuo agio con Vim/Emacs/etc.

So che c'è un contenitore Tomcat per Vagrant, anche se non l'ho usato.

21

Vagrant è fondamentalmente uno strumento per la configurazione di una macchina virtuale VirtualBox. Offre al tavolo la possibilità di eseguire rapidamente il provisioning di una VM e la possibilità di trasferire la ricetta di provisioning agli altri.

Questo è veramente utile nella comunità Ruby/JS perché non hanno un passo di compilazione. Il modo in cui lo usiamo è che il codice rimane sulla mia macchina locale e tutto il runtime viene eseguito sulla VM. Se apporto una modifica al mio computer locale, il programma in esecuzione sulla VM preleva immediatamente la modifica e il runtime viene modificato proprio come se il codice fosse solo sulla VM. Non ho nemmeno bisogno di avere Ruby/JS installato sul mio computer.

Nel mondo Java/.Net si dispone di una fase di compilazione in cui si dice che è necessario Java e tutti i jar necessari per la compilazione sulla macchina. Questo diminuisce parte dell'utilità del setup.

D'altra parte di solito si hanno database, code di messaggi, container, ecc. Con cui si sta lavorando e in un team può essere un problema sparare via email e dire aggiornare il db a questa versione e caricare il nuovo dati di esempio. In Vagrant solo una persona ha bisogno di fare gli aggiornamenti e può quindi dirti di prendere la nuova VM e non devi fare nessuno dei passaggi di aggiornamento da solo.

Quindi è ancora utile in un linguaggio compilato ma è meno utile rispetto a un linguaggio di scripting.