流浪汉对java/javaee开发者有用吗?[已关闭]

2022-09-01 23:31:58

当使用java / javaee时,通常的开发环境设置是在本地拥有所有内容(jdk安装,数据库,应用程序服务器等)。我知道 Ruby/js 世界中有很多人使用虚拟机进行开发(主要是流浪汉)。

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

我在这里看不到任何真正的优势(两台机器上仍然有一些环境)。你对此有任何经验,可以与我分享吗?


答案 1

Vagrant基本上是用于设置VirtualBox虚拟机的工具。它带来了快速预配 VM 的能力,以及将预配配方传递给其他人的能力。

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

在Java/.Net世界中,你有一个编译步骤,所以正如你所说,你需要Java和所有你需要在机器上进行编译的jar。这降低了设置的一些有用性。

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

因此,它在编译语言中仍然有用,但不如在脚本语言中有用。


答案 2

就答案而言,目前还不完全清楚您具体在寻找什么。

IMO 虚拟机的价值不在于开发环境,而在于运行时环境。诸如消息传递/队列,服务器,数据库,云服务器(例如Swift)之类的东西。

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

我们可能会部署到这些计算机,但开发工具在本地运行。IMO几乎没有理由在虚拟机上进行开发,尽管没有理由你不能,特别是如果你对Vim / Emacs /等感到满意的话。

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


推荐