为什么我们必须通过inherits标记指定要在gwt.xml文件中使用的模块?

时间:2013-06-28 17:41:06

标签: java gwt

为什么我们必须通过inherits标记指定要在gwt.xml文件中使用的模块?仅仅导入类是不够的,gwt编译器只会推断出要包含的其他依赖项是什么?

2 个答案:

答案 0 :(得分:1)

gwt.xml个文件包含许多无法从代码中推断出来的内容:

  • <source>告诉我们哪些类在客户端代码中工作;规则可能很复杂,您可以在同一个包中使用不同的规则(重叠或不重叠)拥有多个gwt.xml个文件。实际上,我正在进行模块化gwt-user,它需要很多分区(例如,这样您就可以使用TimerWindow类而无需导入整个小部件集)
  • <super-source>告诉GWT它可以在哪里找到类的客户端特定实现。这用于提供Java运行时的仿真,其中包括(是的,如果你认为你有更好的实现,Java运行时的仿真(几乎)完全可以交换)。
  • <replace-with><generate-with>配置gwt-user广泛使用的deferred binding(在非常低的级别为StringBuilder选择最快的算法,具体取决于浏览器,或支持它的浏览器中的使用requestAnimationFrame,浏览器浏览器差异,每个浏览器等;)

这只是其中的一小部分。

答案 1 :(得分:0)

好问题。最好明确定义要加载的GWT模块。例如,如果您的依赖项中包含.gwt.xml文件,并且您只想将这些类用于服务器端事物。如果jar中的.gwt.xml文件是自动加载的,那么将加载该文件中指定的任何入口点。这可能不是您想要的,并且可能会导致加载gwt模块时产生不必要的开销。