这是问题:在使用Vagrant进行Java项目(或任何编译语言项目)时,应该在虚拟机中还是在主机上编译?此外,您是否希望将IDE和所有开发工具也在虚拟机内运行,还是在主机上?
似乎没有很好地定义 Java IDE 和编译/部署过程如何与 Vagrant VM 协同工作。一般来说,我的印象是代码在主机上编辑,在虚拟机上运行,这对于非编译语言非常有效。Stackoverflow 上的其他答案 暗示 Vagrant 对于编译语言不太有用,因为需要额外的编译步骤,但我仍然想看看能做些什么。
我已经考虑了一些事情:
为什么在虚拟机上编译
如果在主机上编译,需要安装Java,使其成为另一个软件。如果在主机上编译,则必须手动将主机上的Java版本与VM上的Java版本保持更新。主机上对应的Java版本可能无法使用(如在Mac上)。
为什么在VM上有IDE
环境和IDE之间的紧密集成,可以使用快捷键运行应用程序。可以连接调试器以进行Java应用程序的调试(一步运行/调试)。
为什么在主机上编译
更快的编译时间。希望将VM尽可能接近于生产环境。
为什么在主机上有IDE
编辑代码并在VM上运行是vagrant的惯例。UI性能更好(X forwarding和VNC很慢)。
你怎么看:我应该从VM或主机内运行我的IDE?我应该在VM或主机内编译吗?
似乎没有很好地定义 Java IDE 和编译/部署过程如何与 Vagrant VM 协同工作。一般来说,我的印象是代码在主机上编辑,在虚拟机上运行,这对于非编译语言非常有效。Stackoverflow 上的其他答案 暗示 Vagrant 对于编译语言不太有用,因为需要额外的编译步骤,但我仍然想看看能做些什么。
我已经考虑了一些事情:
为什么在虚拟机上编译
如果在主机上编译,需要安装Java,使其成为另一个软件。如果在主机上编译,则必须手动将主机上的Java版本与VM上的Java版本保持更新。主机上对应的Java版本可能无法使用(如在Mac上)。
为什么在VM上有IDE
环境和IDE之间的紧密集成,可以使用快捷键运行应用程序。可以连接调试器以进行Java应用程序的调试(一步运行/调试)。
为什么在主机上编译
更快的编译时间。希望将VM尽可能接近于生产环境。
为什么在主机上有IDE
编辑代码并在VM上运行是vagrant的惯例。UI性能更好(X forwarding和VNC很慢)。
你怎么看:我应该从VM或主机内运行我的IDE?我应该在VM或主机内编译吗?