Аннотации для компилятора 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>
...
Надеюсь, что это поможет.
Приветствия,