2017-10-06 6 views
0

私はGwtで遊んでいて、JsInteropを試してみたいです。JsInteropをGWTで使用する方法

@JsTypeで注釈を付けた単純なPOJOを定義しました。 Ideaはプロジェクトでアノテーションタイプを認識しますが、アノテーションクラスが定義されていないというエラーでビルドに失敗します。

GWTバージョン2.8.1。 GWT mavenプラグインは、gwt-maven-plugin 1.0-rc-8です。

コンパイラオプションは次のとおりです。

<compilerArgs> 
    <compileArg>-XjsInteropMode</compileArg> 
    <compileArg>-generateJsInteropExports</compileArg> 
    <compileArg>JS</compileArg> 
    </compilerArgs> 


[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /home/egnyte/demo/gwt/StockWatcherSample-master/src/main/java/de/google/gwt/stockwatcher/client/sub/Mesage.java:[5,37] package com.google.gwt.core.client.js does not exist 
[ERROR] /home/egnyte/demo/gwt/StockWatcherSample-master/src/main/java/de/google/gwt/stockwatcher/client/sub/Mesage.java:[7,2] cannot find symbol 
    symbol: class JsType 
[INFO] 2 errors 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.119 s 
[INFO] Finished at: 2017-10-06T16:09:52+02:00 
[INFO] Final Memory: 21M/258M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project stockwatcher: Compilation failure: Compilation failure: 
[ERROR] /home/egnyte/demo/gwt/StockWatcherSample-master/src/main/java/de/google/gwt/stockwatcher/client/sub/Mesage.java:[5,37] package com.google.gwt.core.client.js does not exist 
[ERROR] /home/egnyte/demo/gwt/StockWatcherSample-master/src/main/java/de/google/gwt/stockwatcher/client/sub/Mesage.java:[7,2] cannot find symbol 
[ERROR] symbol: class JsType 
+1

大いにオフトピック(この質問はプログラミングとは関係ありません) –

+1

@MarcoSalerno、あなたはgwtの経験がありません。 –

答えて

1

あなた@JsTypeインポートが間違っています。それでも解決しない場合は、それは

import jsinterop.annotations.JsType; 

する必要があり、あなたが実際にあなたの依存関係にjsinterop-annotationsバージョン1.0.1を持っていることを確認してください。

古いアノテーションが表示されている場合は、GWT 2.8以前のGWT 2.7以前を使用しています。バージョンを混在させることは絶対にお勧めしません。

+0

Thx、GWTを2.8にアップグレードした後、アイデアのインポートをリフレッシュすることを忘れてしまいます。だからmavenは2.8で、IDEは2.7からのインポートで私を誤解します。依存関係へのリンクjsinterop-annotationsも役に立ちました。なぜなら、ドキュメントのどこにでも出会ったからです。 –

+0

jsinterop-baseは別の良い依存関係です。Elemental2をまったく使用しているならば、あなたは推移的にそれを拾い上げます。これには過去にJSNIを使用していた「接着剤」がたくさん含まれていますが、GWT3が到着してもまだ動作します。 –

関連する問題