您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java项目无家可归:您应该在VM或主机上进行编译?

Java项目无家可归:您应该在VM或主机上进行编译?

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

对于JavaEE /已部署的应用程序,配置Web服务器和数据库服务器绝对是“足够”复杂的事情,足以保证使用Vagrant。通过两台服务器以及无数种配置方式,很容易使配置从一个开发人员到另一个开发人员不同步,从而导致“在我的机器上工作”综合症。对于此类软件,最好在主机上编辑和编译代码,然后将其部署到模拟您的生产环境的Vagrant VM中,效果最好。Web服务器的部署文件夹甚至可以链接到主机上的编译目标,从而无需手动重新部署。因此,Vagrant可能是您开发生命周期中的重要组成部分,

对于独立的Java应用程序(例如库或桌面应用程序),情况有所变化。在这种情况下,最重要的是在主机上进行编辑,编译和运行,而完全避免使用Vagrant。如果您使用的是大型Java IDE(Eclipse,Netbeans,IntelliJ …)之一,则您已经在计算机上安装了Java。那时,与使用Vagrant的开销相比,几乎没有什么优势,并且仅在开发过程中增加了一层额外的复杂性。这是因为到了您可以使用IDE编辑Java时,您仍然可以在主机上运行所有内容一个问题是项目所需的Java版本可能与主机上运行IDE的版本不匹配。总的来说(希望如此),这并不是一个太大的问题。在撰写本文时,JDK6的生命周期已尽,而JDK8尚未发布(猜测这会给我们带来什么)。但是,如果确实需要运行多个版本,则应该能够根据需要在主机上设置JAVA_HOME。尽管这确实带来了额外的复杂性,但与维护Vagrant运行时(仅用于使用不同版本的Java的项目一起使用)相比,它的复杂性要低。

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

希望这可以为对Vagrant感兴趣的Java开发人员提供一些有关如何使用它的上下文。

java 2022/1/1 18:29:45 有629人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶