0

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

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

我可以在每次生成新应用程序时编译 Module2 而不重新编译 ModuleA 吗?

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

我不关心 GWT 优化。

谢谢

4

1 回答 1

1

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

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

我看到的最佳解决方案是您可以使用gwt-exporter将小部件从 ModuleA 导出到 javascript ,我前段时间编写的本教程可以帮助您。

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

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

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

于 2013-04-19T12:49:52.950 回答