如何摆脱这个无用的 GWT 编译器警告?

How to get rid of this useless GWT compiler warning?

GWT 中有一个选项可以混淆枚举名称:

<set-configuration-property name="compiler.enum.obfuscate.names" value="true" />

当我使用这个选项时,我的编译产生了一个警告:

[WARN] Call to Enum method name when enum obfuscation is enabled:
com/google/gwt/dom/client/DataTransfer.java:127

查看 DataTransfer 源代码,我可以看到它有一个枚举 DropEffect 并且其中一个方法中使用了枚举名称 (setDropEffect)。

我正在使用现代的面向 JsInterop 的 GWT,所以我没有使用这个 DataTransfer class(或 gwt-user.jar 中的任何东西)。有一个无用的警告很烦人。有没有简单的方法来摆脱它?

我知道如何排除我自己的源文件夹中的文件。

是否可以从 gwt-user 中排除源文件夹? (除了从 jar 中物理删除文件!)

这看起来像是一个错误 - 不幸的是编译器没有删除它 class。这应该很容易通过 GWT 的补丁来修复,为名称添加一个字段到 DropEffect,因为即使启用了编译器标志也不能删除它。

Is it possible to exclude source folders from gwt-user? (Other than by physically deleting files from the jar!)

您必须做的是排除 .gwt.xml 文件本身,完全不继承它,甚至不继承它。因此,例如,如果您确实避免在 User 模块中包含 Widget 类型的所有 JSNI,则您的 .gwt.xml 不应引用 Dom 模块或 User 或任何其他内容else 引用 Dom。但是一旦一个模块被继承,就没有办法“取消继承”它。并且一旦继承了一个模块,它的来源就被添加了,不能是un-added.