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中删除文件之外!)
答案 0 :(得分:1)
这似乎是一个错误-不幸的是,编译器没有删除此类。这应该很容易通过GWT补丁进行修复,并在DropEffect中添加一个名称字段,因为即使启用了编译器标志,也绝不能删除该字段。
是否可以从gwt-user中排除源文件夹? (除了通过物理方式从jar中删除文件之外!)
您必须做的是排除.gwt.xml
文件本身,因为它根本不继承,甚至不能继承。因此,例如,如果您确实避免在User
模块中使用所有JSNI,包括Widget类型,则您的.gwt.xml
不应引用Dom
模块或User
或其他任何东西其他引用Dom
的对象。但是,一旦继承了模块,就无法“取消继承”该模块。并且一旦继承了模块,它的源就会被添加,并且不能被取消添加。