10

是否可以创建注释(或其他方式)以强制 GWT 编译器不编译方法?我有一个类,我也在应用程序引擎上使用(在共享文件夹中),其中一个方法需要一个仅服务器端的函数,这会导致 GWT 无法编译。我希望 GWT 忽略该方法(而 appengine 没有)。

我想出了一个注释,或者一个在编译之前擦除方法的预编译脚本。这两种方法都对我有用,如果我仍然可以通过 Eclipse IDE 编译,那将是最好的。

其他人想过这个或尝试过吗?

4

2 回答 2

14

直到现在。最近添加了这样的注释@com.google.gwt.core.shared.GwtIncompatible("Description why...")。它适用于类或方法。

但是补丁代码还没有发布!官方状态为FixedNotReleased。我可以亲自确认,它不在当前的 GWT 2.5.1 版本中。我对即将到来的 2.5.2 充满希望。

看:

http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/core/shared/GwtIncompatible.java?spec=svn11570&r=11570

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.GwtIncompatiblegwt-dev.jar但是它不起作用,编译器仍然想在共享类中编译我的不兼容方法。

于 2013-06-07T17:39:30.247 回答
7

在 GWT 版本 2.6 之前,没有注释可以使 GWT 编译器忽略方法。在 GWT 问题跟踪器中有一个请求,显然它计划在 2.6 版本中发布。

一种解决方法是在自己的类中使用“违规”方法,并在文件中忽略该类.gwt.xml

<source path="gwtclient">
   <exclude name="AppEngineOnlyClass.java" />
   ...
</source>
...

希望有点帮助。

干杯,

于 2012-11-01T21:17:21.210 回答