如何摆脱这个无用的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中物理删除文件!(

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

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

您必须排除.gwt.xml文件本身,方法是完全不继承它,甚至不进行转换。因此,例如,如果您确实避免了User模块中包含Widget类型的所有JSNI,则.gwt.xml不应该引用Dom模块、User或任何引用Dom的其他模块。但是一旦一个模块被继承,就没有办法"无继承人";一旦继承了一个模块,就会添加它的源,而不能取消添加。

最新更新