我将开发一个生成gwt应用程序的系统。这些应用程序共享很多小部件,编译时间对我来说非常重要。 我想知道我是否可以准备一组小部件,将它们包装在没有入口点的模块中,只编译一次,然后在其他模块继承的其他项目中重用已编译的代码。
我可以在每次生成新应用程序时编译Module2而无需重新编译ModuleA吗?
我还使用了superDevMode和所有编译优化, 但这成为一个主要问题:)
我不关心GWT优化。
由于
答案 0 :(得分:1)
如果不使用jsni,则无法编译模块并从其他模块调用它们。
即使使用jsni,除了primitive
和Overlay
类型之外,您也无法在模块之间传递对象。
我看到的最佳解决方案是您可以使用gwt-exporter将小部件从ModuleA导出到javascript,我前面写过的tutorial可以帮助您。
但是在将ModuleA导出为javascript API之后,您必须使用GWT中的jsni来封装此api,以便从ModuleB和ModuleC调用它。
恕我直言,当你排除你的ModuleA时,不值得你在ModuleB的编译中节省时间。
认为在导出ModuleA时,必须编译所有内容,尽管它不在ModuleB中使用。如果您必须使用基元和叠加类型与ModuleA交换信息,那么您在ModuleB中的代码将是一团糟。还有很多其他问题。