Oto pytanie: jeśli używasz Vagrant do projektu Java (lub dowolnego projektu w języku skompilowanym w tym zakresie), czy powinieneś kompilować na maszynie wirtualnej, czy na hoście? Czy chciałbyś, aby Twoje IDE i wszystkie narzędzia programistyczne były uruchamiane również z maszyny wirtualnej, czy na hoście?
Wydaje się, że nie jest dokładnie zdefiniowane , jak środowisko Java IDE i proces kompilacji / wdrażania działają z maszyną wirtualną Vagrant. Ogólnie mam wrażenie, że kod jest edytowany na hoście i uruchamiany na maszynie wirtualnej, co świetnie sprawdza się w językach nieskompilowanych. Inne odpowiedzi w Stackoverflow sugerują, że Vagrant jest mniej przydatny w przypadku języków kompilowanych z powodu dodatkowego kroku kompilacji, ale nadal chcę zobaczyć, co można zrobić.
Kilka rzeczy, które już przemyślałem:
Po co kompilować na maszynie wirtualnej
- jeśli kompilujesz na hoście, java to jeszcze jedno oprogramowanie do zainstalowania
- jeśli kompilujesz na hoście, wersja java na hoście musi być ręcznie aktualizowana z wersją na maszynie wirtualnej
- odpowiednia wersja java na hoście może być niedostępna (powiedzmy na komputerze Mac)
Po co mieć IDE na maszynie wirtualnej
- ściślejsza integracja między środowiskiem a IDE, można używać skrótów do uruchamiania aplikacji
- można podłączyć debugger do aplikacji java bez zdalnego debugowania (jednoetapowe uruchamianie / debugowanie)
Po co kompilować na hoście
- szybsze czasy kompilacji
- chcą, aby maszyna wirtualna była jak najbliżej tego, jak wygląda produkcja
Po co IDE na hoście
- konwencja włóczęgów polega na edytowaniu kodu na hoście i uruchamianiu go na maszynie wirtualnej
- lepsza wydajność interfejsu użytkownika (przekazywanie X i VNC są wolne)
Co myślisz: czy powinienem uruchomić moje IDE z maszyny wirtualnej czy z hosta? Czy powinienem kompilować z poziomu maszyny wirtualnej czy hosta?