是否可以创建注释(或其他方式)以强制 GWT 编译器不编译方法?我有一个类,我也在应用程序引擎上使用(在共享文件夹中),其中一个方法需要一个仅服务器端的函数,这会导致 GWT 无法编译。我希望 GWT 忽略该方法(而 appengine 没有)。
我想出了一个注释,或者一个在编译之前擦除方法的预编译脚本。这两种方法都对我有用,如果我仍然可以通过 Eclipse IDE 编译,那将是最好的。
其他人想过这个或尝试过吗?
直到现在。最近添加了这样的注释@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
但是它不起作用,编译器仍然想在共享类中编译我的不兼容方法。
在 GWT 版本 2.6 之前,没有注释可以使 GWT 编译器忽略方法。在 GWT 问题跟踪器中有一个请求,显然它计划在 2.6 版本中发布。
一种解决方法是在自己的类中使用“违规”方法,并在文件中忽略该类.gwt.xml
:
<source path="gwtclient">
<exclude name="AppEngineOnlyClass.java" />
...
</source>
...
希望有点帮助。
干杯,