Вот вопрос: при использовании Vagrant для проекта Java (или любого скомпилированного языкового проекта в этом отношении) следует ли компилировать в виртуальной машине или на хосте? Кроме того, вы бы хотели, чтобы ваша IDE и все инструменты разработки запускались изнутри виртуальной машины или на хосте?
Кажется, не очень хорошо определено , как именно Java IDE и процесс компиляции / развертывания работают с Vagrant VM. Как правило, у меня сложилось впечатление, что код редактируется на хосте и запускается на виртуальной машине, что отлично подходит для некомпилированных языков. Другие ответы на Stackoverflow предполагают, что Vagrant менее полезен для скомпилированных языков из-за дополнительного этапа компиляции, но я все же хочу посмотреть, что можно сделать.
Некоторые вещи я уже продумал:
Зачем компилировать на ВМ
- при компиляции на хосте java - еще одна часть программного обеспечения для установки
- при компиляции на хосте версия Java на хосте должна обновляться вручную с версией на виртуальной машине
- соответствующая версия java на хосте может быть недоступна (скажем, на Mac)
Зачем IDE на ВМ
- более тесная интеграция между средой и IDE, можно использовать ярлыки для запуска приложения
- можно подключить отладчик для Java-приложений без удаленной отладки (одноэтапный запуск / отладка)
Зачем компилировать на хосте
- более быстрое время компиляции
- хотите, чтобы виртуальная машина была как можно ближе к тому, как выглядит производственная среда
Зачем IDE на хосте
- это бродячая конвенция редактировать код на хосте и запускать его на виртуальной машине
- лучшая производительность пользовательского интерфейса (пересылка X и VNC медленные)
Что вы думаете: следует ли мне запускать свою IDE из виртуальной машины или хоста? Должен ли я компилировать из виртуальной машины или хоста?