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

时间:2020-09-02 19:28:44

标签: gwt

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类(或gwt-user.jar中的任何类)。发出无用的警告很烦人。有摆脱它的简单方法吗?

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

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

1 个答案:

答案 0 :(得分:1)

这似乎是一个错误-不幸的是,编译器没有删除此类。这应该很容易通过GWT补丁进行修复,并在DropEffect中添加一个名称字段,因为即使启用了编译器标志,也绝不能删除该字段。

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

您必须做的是排除.gwt.xml文件本身,因为它根本不继承,甚至不能继承。因此,例如,如果您确实避免在User模块中使用所有JSNI,包括Widget类型,则您的.gwt.xml不应引用Dom模块或User或其他任何东西其他引用Dom的对象。但是,一旦继承了模块,就无法“取消继承”该模块。并且一旦继承了模块,它的源就会被添加,并且不能被取消添加。