我可以使用一个预编译模块,如一个库的小部件

Can I use a pre-compiled module like a library of widgets?

本文关键字:一个 小部 可以使 我可以 编译 模块      更新时间:2023-09-26

我将开发一个生成gwt应用程序的系统。这些应用程序共享了很多小部件,编译时间对我来说非常重要。我想知道我是否可以准备一组小部件,将它们包装在一个没有入口点的模块中,编译它们只是一次,并在其他项目中重用编译过的代码,其中其他模块从它继承。

  • ModuleA(仅共享部件)
  • Module1 (app1的其余部分继承自ModuleA)。
  • Module2 (app2的其余部分继承自ModuleA)。

我可以编译Module2没有重新编译ModuleA每次新应用程序生成?

我还使用了superDevMode和所有编译优化,但这已经成为一个原则性问题了:)

我不关心GWT优化。

谢谢

如果不使用jsni,就不能编译模块并从其他模块调用它们。

即使使用jsni,除了primitiveOverlay类型之外,您也不能在模块之间传递对象。

我看到的最好的解决方案是,您可以使用gwt-export从ModuleA导出小部件到javascript,我之前写的这个教程可以帮助您。

但是在将ModuleA导出为javascript API之后,您必须使用GWT中的jsni包装此API以从ModuleB和ModuleC调用它。

恕我直言,当您排除ModuleA时,在编译ModuleB时节省的时间是不值得的。

认为当你导出ModuleA时,你必须编译所有东西,尽管它没有在ModuleB中使用。如果你必须使用原语和覆盖类型与ModuleA交换信息,那么你在ModuleB中的代码将是一团糟。还有很多其他的问题。