我正在寻找一种方法来提高我团队的工作效率,一种方法是缩短编译和单元测试所需的时间,打包和部署我们的Java EE应用程序,这个应用程序越来越大.
我所知道的简单解决方案是建立一台功能强大的计算机,它具有N个处理器(N~ =开发人员数量)和一个超快的磁盘系统和大量内存,并运行此计算机上的所有内容并通过X远程连接到它.它肯定比编译我们的笔记本电脑快得多,但仍然比购买每个开发人员他/她自己的超级计算机更便宜和更容易维护.
有没有其他方法可以解决这个问题?例如,我们可以在本地运行我们的IDE然后告诉它远程编译java源吗?Netbeans/Eclipse/IntelliJ /等可以这样做吗?或者是否有一个特殊的工具可以实现远程Java编译,也可以使用多个处理器?它不一定是免费/开源的.
不幸的是我们的笔记本电脑必须运行一个(公司管理的)Windows Vista,所以另一个原因是让我们使用独立的服务器计算机,最后摆脱烦人的托管环境.
编辑:总结到目前为止的答案,缩短构建时间的一种方法是单独为开发人员保留编译(因为编译应该是快速的),跳过运行单元测试和热部署(没有打包)到容器.
然后,当开发人员决定检查他/她的代码时,会触发持续集成服务器(如Hudson)来清理和构建并运行测试和打包和部署.
解决方案:我接受了Thorbjørn的答案,因为我认为这将是我最接近我计划进行的方式.虽然出于好奇,我仍然有兴趣解决原始问题(=远程Java编译)...
设置构建服务器很常见,例如运行hudson来进行编译/打包/单元测试/部署.
虽然您可能仍然需要客户端至少执行编译.转移到使用构建服务器,如果您现在不使用构建服务器,则可能需要更改工作流程 - 例如,如果目标是从客户端计算机上卸载,您的开发人员将检查代码,自动单元测试运行,而不是先运行单元测试,然后检入.
您基本上需要两个工作流程.
检查源的OFFICIAL构建,从头开始构建整个事物,运行所有单元测试,然后构建最终将在测试后发送给客户的位.
每个源代码更改为IDE知道的容器后,开发人员进行热部署.
这两者实际上可能大不相同!
对于官方构建,让Jenkins启动并运行并告诉它在发生更改时观察源存储库并构建(并告诉那些打破构建的人).如果您可以使用大型计算机进行构建,请将其用于此目的.
对于开发人员,请查看具有非常好的IDE部署选项的合适容器,并将其设置为适用于每个开发人员.这将很快得到回报!JBoss以前非常适合这个目的.
而且,不,我不知道有效的远程Java编译选项,我不认为这是你应该为开发人员追求的.
了解Joel对构建服务器的看法:http://www.joelonsoftware.com/articles/fog0000000023.html
如果你不喜欢詹金斯,那么还有很多其他人.
(2016年编辑:Hudson改为Jenkins.请参阅/sf/ask/17360801/了解名称变更背后的历史)