是否可以创建注释(或其他方式)来强制GWT编译器不编译方法?我有一个类,我也在app-engine上使用(在共享文件夹中),其中的一个方法需要一个仅服务器端的功能,导致GWT无法编译。我希望GWT忽略该方法(而appengine不会)。
我想到了一个注释,或者一个在编译之前擦除方法的预编译脚本。这两种方法对我都有用,如果我仍然可以通过eclipse IDE进行编译,那将是最好的。
其他人是否想过这个或尝试过?
答案 0 :(得分:13)
直到现在。最近添加了@com.google.gwt.core.shared.GwtIncompatible("Description why...")
这样的注释。它适用于类或方法。
但补丁代码尚未发布!官方状态为FixedNotReleased
。我个人可以确认,它不是当前的GWT 2.5.1版本。我对即将到来的2.5.2充满希望。
请参阅:
http://code.google.com/p/google-web-toolkit/issues/detail?id=3769
https://gwt-review.googlesource.com/#/c/2320/
请注意,com.google.gwt.thirdparty.guava.common.annotations.GwtIncompatible
中已有类似的注释gwt-dev.jar
它不起作用,编译器仍然希望在共享类中编译我的不兼容的方法。
答案 1 :(得分:7)
在GWT 2.6之前,没有注释使GWT编译器忽略方法。在GWT问题跟踪器中有一个requests,显然它安排在2.6版本中。
一种解决方法是使用#34;违规"在自己的类中的方法,并忽略.gwt.xml
文件中的该类:
<source path="gwtclient">
<exclude name="AppEngineOnlyClass.java" />
...
</source>
...
希望有所帮助。
干杯,