vagrant对java/javaee开发人员有用吗?

gra*_*hez 22 java virtual-machine vagrant

使用java/javaee时,通常的开发环境设置是在本地拥有一切(jdk安装,数据库,appserver等).我知道ruby/js世界中有很多人使用虚拟机进行开发(主要是使用vagrant).

我想知道是否有一种有效的方法来为java/javaee设置类似的env.我怀疑我可以在这样的虚拟机上轻松地将数据库服务器和应用服务器与jdk版本一起安装,但是常规开发呢?我还需要在本地安装jdk,对吧?(我需要我的IDE才能正常工作)我需要maven来构建我的项目,所以我需要完整的maven本地回购.然后我需要在虚拟机的应用服务器上部署我的应用程序.

我在这里看不到真正的优势(两台机器上仍有环境).你有这方面的经验并可以与我分享?

ran*_*ath 21

Vagrant基本上是一个用于设置VirtualBox虚拟机的工具.它为表格提供了快速配置VM的能力以及将配置配方传递给其他人的能力.

这在Ruby/JS社区中非常有用,因为它们没有编译步骤.我们使用它的方式是代码保留在我的本地机器上,所有运行时都在VM上完成.如果我在本地计算机上进行更改,则VM上正在运行的程序会立即获取更改,并且运行时将被修改,就像代码仅在VM上一样.我甚至不需要在我的计算机上安装Ruby/JS.

在Java/.Net世界中,您有一个编译步骤,因此您说您需要Java和您需要在计算机上编译的所有jar.这减少了设置的一些有用性.

另一方面,您通常拥有与之合作的数据库,消息队列,容器等,在团队中,拍摄电子邮件并将数据库更新到此版本并加载新的示例数据可能会很痛苦.在Vagrant中,只有一个人需要进行更新,然后他们可以告诉您获取新VM,而您自己无需执行任何升级步骤.

因此它在编译语言中仍然有用,但它没有脚本语言那么有用.


Dav*_*ton 2

目前尚不完全清楚您具体要寻找什么答案。

在我看来,虚拟机的价值不在于开发环境,而在于运行时环境。消息/队列、服务器、数据库、云服务器(例如 Swift)等。

这是与语言无关的。例如,我们有虚拟机(不是基于 Vagrant 的),包括 Hadoop/HDFS/HBase、Swift、RabbitMQ 和各种容器。

我们可能会部署到这些机器上,但开发工具在本地运行。IMO 没有什么理由在虚拟机上进行开发,尽管没有理由不能特别是如果您熟悉 Vim/Emacs/etc 的话。

我知道 Vagrant 有一个 Tomcat 容器,尽管我没有使用过它。