GWT编译器忽略方法的注释

时间:2012-11-01 20:21:10

标签: java gwt

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

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

其他人是否想过这个或尝试过?

2 个答案:

答案 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/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.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>
...

希望有所帮助。

干杯,

相关问题