Voici la question: lorsque vous utilisez Vagrant pour un projet Java (ou tout autre projet de langage compilé d'ailleurs), devez-vous compiler dans la VM ou sur l'hôte? Souhaitez-vous également que votre IDE et tous vos outils de développement soient également exécutés à partir de la machine virtuelle ou de l'hôte?
Il ne semble pas très bien défini comment un IDE Java et le processus de compilation / déploiement fonctionnent avec une VM Vagrant. En général, j'ai l'impression que le code est édité sur l'hôte et exécuté sur la machine virtuelle, ce qui fonctionne très bien pour les langages non compilés. D'autres réponses sur Stackoverflow ont laissé entendre que Vagrant est moins utile pour les langages compilés en raison de l'étape de compilation supplémentaire, mais je veux toujours voir ce qui peut être fait.
Certaines choses auxquelles j'ai déjà réfléchi:
Pourquoi compiler sur la VM
- si vous compilez sur l'hôte, java est un autre logiciel à installer
- en cas de compilation sur l'hôte, la version java sur l'hôte doit être mise à jour manuellement avec celle de la VM
- la version java correspondante sur l'hôte peut être indisponible (par exemple, sur un Mac)
Pourquoi avoir IDE sur la VM
- intégration plus étroite entre l'environnement et l'IDE, peut utiliser des raccourcis pour exécuter l'application
- peut connecter le débogueur pour les applications java sans débogage à distance (exécution / débogage en une étape)
Pourquoi compiler sur l'hôte
- temps de compilation plus rapides
- veulent garder la VM aussi proche que possible de ce à quoi ressemble la production
Pourquoi avoir IDE sur l'hôte
- c'est la convention vagrant de modifier le code sur l'hôte et de l'exécuter sur la VM
- meilleures performances de l'interface utilisateur (le transfert X et le VNC sont lents)
Que pensez-vous: dois-je exécuter mon IDE à partir de la VM ou de l'hôte? Dois-je compiler à partir de la machine virtuelle ou de l'hôte?