2

我将首先提出一些我遇到的具体问题,并根据上下文进行跟进:

  • 如何控制如何配置 eclipse 中的 GWT 代码验证?
  • GWT 代码验证有什么作用?
  • 当它扫描 java 类时,它会加载任何类吗?
  • 为什么它扫描不在客户端/共享包中的类?我怎样才能让它停止?

我正在运行 Eclipse Juno。最近我团队的另一位成员将我们的项目从 GWT 2.4 升级到 2.5,我注意到的第一个影响是 GWT 代码验证会消耗资源,使我的工作空间停止,并最终因 java 堆错误而失败 - 迫使我杀死日食。

请注意,我在我的 中配置了很多堆eclipse.ini,特别是:-Xms256m -Xmx1536m

尽管如此,为了重新获得对我的工作区的控制权,我未选中Project --> Build Automatically,将 eclipse 配置为使用 显示堆使用情况Preferences --> General --> Show Heap Status,并将我的堆大小eclipse.ini增加到-Xms2048m -Xmx3072m只是作为一个实验来看看会发生什么。

完成此操作后,我再次打开 eclipse 并让它自动构建,当它执行 GWT 代码验证阶段时,要特别注意进度条,以及堆大小:它爬了,爬了,爬了,最后在某个地方达到了峰值2G以北消耗。最终,它完成了(尽管花费的时间太长,根本不是合理的时间)。在完成后的一分钟内,一个巨大的垃圾收集事件使堆减少到只有 300 兆字节。

我在进度条下看到的更有趣:GWT 代码验证似乎正在扫描*.java我整个项目中的每个文件:不仅仅是那些在clientshared包中的文件,而是所有文件。我看到了 GWT 编译器在一百万年内永远不会看到的类名。

所以看起来,虽然 GWT 编译器足够聪明,可以从入口点 GWT 模块文件开始并从那里搜索,但 GWT 代码验证过程似乎对所有内容进行了蛮力搜索。

如果它在此过程中进行任何类加载,上帝会帮助它。其中一些旧的服务器端类包含我祖先的古老罪恶,在静态初始化程序中连接到外部资源等等。

有什么方法可以让我将此验证配置为对其扫描的内容更加简洁?

4

2 回答 2

1

我正在浏览 Eclipse Validator 文档。它指出项目构建验证器可以允许可配置的过滤器。http://www.eclipse.org/webtools/wst/components/validation/ValidationOverview.html

但是我在 GPE 源代码上找不到任何相关的东西 @ http://code.google.com/p/google-plugin-for-eclipse/source/search?q=validator&origq=validator&btnG=Search+Trunk

同时,我们坚持使用 Preferences -> Validation -> Suspend All Validators 禁用 eclipse 中的所有验证。

于 2012-12-27T09:30:07.723 回答
0

您应该禁用对已编译 JavaScript 文件的验证。这有助于解决 Eclipse 性能问题:https ://stackoverflow.com/a/19909401/1040124

于 2013-11-12T10:12:33.997 回答