随着项目功能的完善,GWT模块(Module)越来越多,当要以web模式编译给测试组使用时,编译的总时间越来越多,我的机器编译完8个模块,需要10分钟左右。
抽空研究了一下GWT的编译参数和GWT编译后的代码,发现GWT编译是按:支持的浏览器种类、支持的多语言种类来生成多个html文件。如:支持5种浏览器,支持3种语言,就会生成15个html文件。
如果我们测试阶段的重点是:英文和IE浏览器,则根本不需要其他多余的html,从而会减少编译时间。
于是,我在 xxxx.gwt.xml 中,增加: <set-property name="user.agent" value="ie6"/> , 这样编译后就只能使用IE浏览器。
关于GWT的多语言处理方式,它是提前把所有用到的语言值直接生成在 javaScript中,不用动态的到 xxx_zh.properties 中读取了。如果要修改properties的值,必须需要重新编译系统。
这样的处理减少了服务器的负载。 但我们项目的最终客户需要在系统发布后由管理员去修改Label的多语言值。而我们不可能要求客户去重新编译系统的。于是,我们决定不使用GWT的多语言处理方式。即不再 xxxx.gwt.xml 中增加 <set-property name="user.locale"
value="zh"/> 之类的设置。这样,我们一个模块,就只需要编译出一个html文件。整体编译时间降到 4分钟。