Аннотации для компилятора GWT для игнорирования метода

Можно ли создать аннотацию (или каким-либо другим способом), чтобы заставить компилятор GWT не компилировать метод? У меня есть класс, который я также использую в приложении-движке (в общей папке), и один метод в нем требует только функции на стороне сервера, что заставляет GWT не компилироваться. Я хотел бы, чтобы GWT просто игнорировал метод (пока appengine не делает).

Я представил либо аннотацию, либо предварительную компиляцию script, которая стирает метод до компиляции. Оба метода будут работать для меня, было бы лучше, если бы я все еще мог компилироваться через Eclipse IDE.

Кто-нибудь еще подумал об этом или попробовал?

Ответ 1

До сих пор. Совсем недавно была добавлена ​​такая аннотация @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/

Обратите внимание: в gwt-dev.jar уже есть аналогичная аннотация com.google.gwt.thirdparty.guava.common.annotations.GwtIncompatible, однако он не работает, компилятор все еще хочет скомпилировать мой несовместимый метод в общем классе.

Ответ 2

До версии GWT версии 2.6 отсутствует аннотация, чтобы компилятор GWT игнорировал метод. Существует запросы для него в трее по GWT-проблеме, и, по-видимому, он запланирован для версии 2.6.

Один подход к обходу - это иметь "оскорбительный" метод в собственном классе и игнорировать этот класс в вашем файле .gwt.xml:

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

Надеюсь, что это поможет.

Приветствия,