java vagrant_Vagrant for Java项目:应该在VM中还是在主机上编译?

经过多番思考和实验,我决定在哪里使用Vagrant以及如何与Java开发工作流程集成。

对于JavaEE /部署的应用程序,配置Web服务器和数据库服务器绝对是具有“足够”复杂性以保证使用Vagrant的。有两个服务器和无数的配置方式,配置很容易失去同步从一个开发者到另一个,带来“工作在我的机器”综合征。对于这种软件,最好在主机上编辑和编译代码,并部署到模仿您的生产环境的Vagrant VM。 Web服务器的部署文件夹甚至可以被符号链接到主机上的编译目标,从而无需手动重新部署。因此,Vagrant可能是开发生命周期的重要组成部分,但是从主机进行代码/编译/部署并在具有Java的VM上运行的周期时间将长于主机上的代码并在VM上运行的周期时间我们看到用PHP / Ruby / Node / etc。

对于独立的Java应用程序(如库或桌面应用程序),故事有所改变。在这种情况下,编辑,编译和在主机上运行是最有意义的,完全避免使用Vagrant。如果你使用大的Java IDE(Eclipse,Netbeans,IntelliJ …),你已经在机器上安装了Java。在这一点上,与使用Vagrant的开销相比,只有很少的优势,而且只是在你的开发过程中增加了一层额外的复杂性。这是因为,当您能够使用IDE编辑Java时,您可以在主机上运行所有内容。一个问题是项目所需的Java版本可能与主机上运行IDE的版本不匹配。一般来说(希望)这不是太多的问题;从这个写作JDK6是生命的终止和JDK8尚未发布(猜猜在哪里离开我们)。但是如果你确实需要运行多个版本,你应该能够根据需要在主机上设置JAVA_HOME。虽然这引入了额外的复杂性,但是比维护一个Vagrant运行时仅仅为了使用不同版本的Java的项目更简单。

有趣的问题是如何处理无容器Web应用程序。是否应该像在外部Web服务器上一样在Web中运行Web服务器(在本例中是应用程序内部的)?或者在主机上运行,​​就像我们为独立应用程序所做的那样?对于无容器Web应用程序,没有外部Web服务器可以担心,但仍有可能是数据库。在这种情况下,我们可以采取混合方法。运行无容器Web应用程序本质上与运行独立应用程序相同,因此在主机上编译和运行代码将非常有效。但是涉及到数据库,仍然有足够的复杂性和配置,使数据库服务器位于自己的Vagrant VM上是有意义的。

希望这给了对Vagrant感兴趣的Java开发人员一些关于如何使用它的上下文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值