GWT编译器忽略方法的注释

Mic*_*ael 10 java gwt

是否可以创建注释(或其他方式)来强制GWT编译器不编译方法?我有一个类,我也在app-engine上使用(在共享文件夹中),并且其中的一个方法需要仅服务器端功能,这导致GWT无法编译.我希望GWT忽略该方法(而appengine不会).

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

有人想过这个或尝试过吗?

Esp*_*osa 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/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,但它不工作,编译器仍然要编译我的不兼容共享类方法.


And*_*rup 7

在GWT 2.6之前,没有注释使GWT编译器忽略方法.GWT问题跟踪器中有一个请求,显然它已安排在2.6版本中.

一种解决方法是将"违规"方法放在自己的类中,并忽略.gwt.xml文件中的该类:

<source path="gwtclient">
   <exclude name="AppEngineOnlyClass.java" />
   ...
</source>
...
Run Code Online (Sandbox Code Playgroud)

希望有点帮助.

干杯,

  • 请注意,`AppEngineOnlyClass`可以扩展`AppEngineAndGwtClass`以继承对GWT和GAE都有效的所有内容. (3认同)