【问题标题】:Is vagrant useful for java/javaee developers? [closed]vagrant 对 java/javaee 开发人员有用吗? [关闭]
【发布时间】:2013-02-15 22:41:05
【问题描述】:

使用 java/javaee 时,通常的开发环境设置是将所有内容都放在本地(jdk 安装、数据库、应用服务器等)。我知道 ruby​​/js 世界中有很多人使用虚拟机进行开发(主要是 vagrant)。

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

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

【问题讨论】:

  • 您可以将问题编辑为可以取消关闭的状态,对吗?我在 vagrant 上研究 Java,知道你在做什么,我自己也有同样的问题。我仍然认为这很有用。

标签: java virtual-machine vagrant


【解决方案1】:

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

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

在 Java/.Net 世界中,您有一个编译步骤,因此您说您需要 Java 以及需要在您的机器上编译的所有 jar。这会降低设置的一些实用性。

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

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

【讨论】:

    【解决方案2】:

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

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

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

    我们可能部署到这些机器上,但开发工具在本地运行。 IMO 几乎没有理由在虚拟机上进行开发,尽管您没有理由不能,尤其是如果您对 Vim/Emacs/etc 感到满意。

    我知道有一个用于 Vagrant 的 Tomcat 容器,虽然我没有使用它。

    【讨论】:

    • 我不是专家,但听起来你并不知道 Vagrant 是什么。它不是用于生产:它是关于开发环境的。
    • @DavidS 听起来你误解了我的意思。我和另一个答案说了同样的话,但用更少的话:这不是关于开发(尤其是在 Java 中),而是关于应用程序期望的运行时环境:消息传递、数据库、大数据、应用服务器等等。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多