GWT的持续集成

GWT的持续集成,gwt,continuous-integration,bamboo,Gwt,Continuous Integration,Bamboo,我们使用GWT作为我们的主要前端技术 我们使用竹子作为构建服务器,使用GIT作为源代码管理工具 我们的应用程序非常庞大,分为不同的模块。但是,在本地开发人员机器上使用4GB RAM进行编译仍然需要很多时间 问题是: 作为持续集成的一部分,我们是否应该在本地开发人员机器上构建GWT代码?如果是,那么应该采取什么方法来加快构建过程?为开发人员构建GWT企业应用程序的最佳实践是什么 提前感谢你的帮助 您好,Niraj Salot1.-我们是否应该在本地开发人员机器上构建GWT代码 是的,您的项目必须进

我们使用GWT作为我们的主要前端技术

我们使用竹子作为构建服务器,使用GIT作为源代码管理工具

我们的应用程序非常庞大,分为不同的模块。但是,在本地开发人员机器上使用4GB RAM进行编译仍然需要很多时间

问题是:

作为持续集成的一部分,我们是否应该在本地开发人员机器上构建GWT代码?如果是,那么应该采取什么方法来加快构建过程?为开发人员构建GWT企业应用程序的最佳实践是什么

提前感谢你的帮助

您好,Niraj Salot

1.-我们是否应该在本地开发人员机器上构建GWT代码

是的,您的项目必须进行设置,以便能够在任何机器上以单个订单进行构建,我的意思是运行
ant build
mvn package
,等等(取决于您的构建系统)。这保证了任何开发人员都可以在其首选的操作系统中构建和试验项目,并且CI系统能够测试和构建集成和生产工件

2.-如果是,那么应该采取什么方法加快构建过程

您必须配置您的环境,以便只有CI服务器生成的工件才能投入生产。没有什么特别的,只是向您的团队规定一些规则和约定,所以项目构建不依赖于任何特定的IDE或OS配置

3.-为开发人员构建GWT企业应用程序的最佳实践是什么

GWT是java,您为java项目阅读的任何通用实践都适用于GWT:稳定的构建系统,针对您的代码运行高质量的代码工具,使用CI早期实现缺陷,以及大量测试

4.其他建议

与测试相关,因为客户端代码的运行测试很慢,所以您应该考虑使用MVP模式,因此几乎所有的应用程序代码都在模型和演示程序类中,并且可以在JVM中运行这些单元测试。然后信任经过良好测试的小部件来实现您的视图,因此您不必对它们进行单元测试。如果您创建自己的小部件,请考虑使用UIbWER基于其他控件或纯HTML编写组合。对于包含大量java代码的小部件,应该使用GWTTestCase对其进行测试。JVM测试应该非常快,因此当开发人员在任何交互中运行它们时,GWTTestCases和集成测试都可以由CI运行

你可以考虑安装一个像GeRIT,IMO这样的评论代码系统,如果你不做配对编程,代码审查是基本的。通过代码检查,您可以在补丁进入主控状态之前对其进行测试


与开发人员周期相关,尝试在gwt-2.7.0中使用超级开发模式。教您的开发人员如何在Chrome中调试客户端代码(它完全支持源代码映射),并告诉他们其他浏览器中的调试限制,因为他们使用其他浏览器只是为了检查您的应用程序是否在所有平台上工作。不鼓励使用经典开发模式,因为它已被中断。您可以尝试使用新插件将超级开发模式与eclipse调试器集成。

谢谢。因此,这意味着开发人员应该首先在本地计算机上构建源代码,然后再将某些内容推送到CI服务器接收的主repo上。但接下来的问题是,我们如何解决GWT的性能问题?我尝试了GWT2.6和超级开发模式,但是速度太慢了。。有什么建议吗?是否建议使用GWT 2.7服务器开发模式来解决性能问题?是的,2.7要快得多。重新。在推送之前在本地构建:这是您必须做出的选择,但它确保了更干净的提交历史。如果可以,请插入CI以生成代码审阅(如果您在提交/合并之前进行审阅,您应该在IMO中这样做),这样开发人员就可以推送审阅/推送到专用分支,并且CI服务器在将更改合并到
master
/
trunk
之前生成它。在此期间,开发人员可以开始处理其他任务,并在构建失败时切换回上一个任务(不会影响其他开发人员,因为它尚未合并)。实际上,这里没有特定于GWT的内容。我的意思是,开发人员应该在本地运行所有JVM测试,这将保证约70-80%的应用程序代码正常工作。但是,由于大多数开发人员喜欢在浏览器中查看应用程序,他们可以在superdev模式下运行它,正如Thomas所说,2.7中的应用程序速度非常快,刷新UI应该可以在不到几秒钟的时间内重新编译大型应用程序,而第一次需要一段时间。但他们不必在本地生产任何战争或优化的JS。