0

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

4

2 回答 2

1

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

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

而这只是其中的一小部分。

于 2013-06-30T15:30:16.000 回答
0

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

于 2013-06-28T17:47:13.303 回答