在我公司,大约有 30-40 名开发人员,他们都在从事同一个网站开发项目。项目分为许多模块。我的问题是每个开发人员都运行自己的 JBOSS 来运行他的 JAVA 代码。使用 Ant,他们构建 Ear 文件并将它们部署到在本地桌面上运行的 JBOSS 上。这需要巨大的内存并减慢桌面速度。如果我们可以在不同的服务器机器上运行 JBOSS 并且所有开发人员都使用这台机器同时运行和测试他们的代码,这不是可能的吗?希望你们明白我的问题吗?
提前致谢。
您可以设置像Jenkins这样的持续集成服务器。使用 Jenkins,您有不同的“项目”。每个项目构建代码并运行一个 JBoss 实例。
使用 Jenkins,您可以为每个开发人员创建一个不同的项目(如果这是您想要的),并且您可以在每次开发人员签入代码时获得 Jenkins 编译和运行单元测试的额外好处。
这是可能的。您可以通过在特定 IP 上运行 JBOSS 应用程序服务器来实现这一点。要做到这一点,您必须使用 ./run.sh -b 后跟要运行应用程序服务器的机器的 IP 地址. 这样你的服务器就准备好了。现在每个客户端都必须在该 IP 地址的帮助下连接到服务器。为此,你将环回地址 (127.0.0.1) 替换为运行应用程序服务器的 IP 地址。
你可以,但是如果有很多开发人员在一起,这可能会变得很棘手。
可以运行单个 jboss 实例,但是如果不同的开发人员在相同的代码上工作,或者没有热部署,那么你会遇到热部署、减慢工作和交叉污染的问题,在这种情况下,服务器必须每次都关闭部署/更改应用程序的时间。在测试环境中,这不能很好地工作。
另一种方法是为每个开发人员运行一个单独的实例来运行测试,但这会在金钱和服务器资源方面变得非常昂贵。当您尝试合并来自这些不同环境的更改时,您也会做噩梦。
一些好的组织可能会有所帮助。我们运行三层:开发,登台,生产。开发纯粹是为您的开发人员服务的。错误跟踪和测试在阶段处理,而生产用于用户和客户评估(假设产品尚未推出)。使用良好的存储库将更改从本地机器编码到开发,然后管理员将更改组滚动到登台。它并不能真正解决您在本地机器上的内存问题,但我想我会尝试帮助解决一些企业级的问题。
一个快速的解决方法是在每台机器上放置大量的 RAM,无论如何它都很便宜。然后将您的服务器内存设置设置得更高。这将减少您的 CPU 负载,并减少您看到因过多热部署而导致的可怕 permgen 错误的次数