是否可以創建註釋(或其他方式)來強制GWT編譯器不編譯方法?我有一個我也在應用程序引擎上使用的類(在一個共享文件夾中),其中的一個方法需要服務器端唯一的函數,導致GWT不能編譯。我想讓GWT忽略這個方法(而appengine不會)。GWT編譯器忽略方法的註釋
我想出了一個註釋,或者是一個預編譯腳本,在編譯之前擦除該方法。這兩種方法都適用於我,如果我仍然可以通過eclipse IDE進行編譯,那最好。
其他人想過這個還是試過了?
是否可以創建註釋(或其他方式)來強制GWT編譯器不編譯方法?我有一個我也在應用程序引擎上使用的類(在一個共享文件夾中),其中的一個方法需要服務器端唯一的函數,導致GWT不能編譯。我想讓GWT忽略這個方法(而appengine不會)。GWT編譯器忽略方法的註釋
我想出了一個註釋,或者是一個預編譯腳本,在編譯之前擦除該方法。這兩種方法都適用於我,如果我仍然可以通過eclipse IDE進行編譯,那最好。
其他人想過這個還是試過了?
直到現在。最近,這樣的註釋添加了@com.google.gwt.core.shared.GwtIncompatible("Description why...")
。它適用於類或方法。
但修補後的代碼還沒有發佈!官方身份是FixedNotReleased
。我可以親自確認,它不在當前的GWT 2.5.1版本中。我希望即將到來的2.5.2。
參見:
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
,但是 這是行不通的,編譯器仍然希望編譯我在共享類中不兼容方法。
在GWT版本2.6之前,沒有使GWT編譯器忽略方法的註釋。 GWT問題跟蹤器中有一個requests,顯然它計劃在2.6版本中發佈。
一個解決方法的方法是在一類自身的「攻擊」的方法,而忽略這個類在.gwt.xml
文件:
<source path="gwtclient">
<exclude name="AppEngineOnlyClass.java" />
...
</source>
...
希望有點幫助。
乾杯,
請注意'AppEngineOnlyClass'可以擴展'AppEngineAndGwtClass'來繼承對GWT和GAE都有效的所有內容。 –
優秀點鮑里斯。 –
這是GWT 2.6正式版:https://docs.google.com/document/d/1ZdMwcTjc4rkWg6nntCY1BDB1xI2PHPwaCnTYw-9uAKE/edit –
@GwtIncompatible是GWT 2.8.x的一部分(它有一個穩定的版本,甚至可能是更早的版本) – xamde