Hier ist die Frage: Wenn Sie Vagrant für ein Java-Projekt (oder ein anderes kompiliertes Sprachprojekt) verwenden, sollten Sie in der VM oder auf dem Host kompilieren? Möchten Sie außerdem, dass Ihre IDE und alle Ihre Entwicklungstools auch innerhalb der VM oder auf dem Host ausgeführt werden?
Es scheint nicht sehr genau definiert zu sein , wie eine Java-IDE und der Kompilierungs- / Bereitstellungsprozess mit einer Vagrant-VM funktionieren. Im Allgemeinen habe ich den Eindruck, dass Code auf dem Host bearbeitet und auf der VM ausgeführt wird, was für nicht kompilierte Sprachen hervorragend geeignet ist. Andere Antworten auf Stackoverflow haben impliziert, dass Vagrant für kompilierte Sprachen aufgrund des zusätzlichen Kompilierungsschritts weniger nützlich ist, aber ich möchte immer noch sehen, was getan werden kann.
Einige Dinge habe ich mir schon überlegt:
Warum auf der VM kompilieren?
- Beim Kompilieren auf dem Host ist Java eine weitere zu installierende Software
- Beim Kompilieren auf dem Host muss die Java-Version auf dem Host manuell mit der auf der VM auf dem neuesten Stand gehalten werden
- Die entsprechende Java-Version auf dem Host ist möglicherweise nicht verfügbar (z. B. auf einem Mac).
Warum IDE auf der VM haben
- Durch eine engere Integration zwischen Umgebung und IDE können Verknüpfungen zum Ausführen der Anwendung verwendet werden
- kann den Debugger für Java-Anwendungen ohne Remote-Debugging verbinden (einstufiges Ausführen / Debuggen)
Warum auf dem Host kompilieren
- schnellere Kompilierungszeiten
- Ich möchte die VM so nah wie möglich an der Produktion halten
Warum IDE auf dem Host haben
- Es ist die übliche Konvention, Code auf dem Host zu bearbeiten und auf der VM auszuführen
- bessere UI-Leistung (X-Weiterleitung und VNC sind langsam)
Was denken Sie: Soll ich meine IDE innerhalb der VM oder des Hosts ausführen? Soll ich aus der VM oder dem Host kompilieren?