如何在 GWT 中使用 JsInterop
How to use JsInterop in GWT
我正在玩 Gwt,想试试 JsInterop。
我定义了一个用@JsType 注释的简单POJO。
Idea 在项目中看到注释类型,但构建失败并显示注释 class 未定义的错误。
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
您的 @JsType
导入错误。应该是
import jsinterop.annotations.JsType;
如果这不起作用,请确保您的依赖项中确实有 jsinterop-annotations
版本 1.0.1。
如果您看到的是旧注释,那么除了 GWT 2.8 之外,您还使用了 GWT 2.7 或更早版本 - 混合版本绝不是个好主意。
我正在玩 Gwt,想试试 JsInterop。
我定义了一个用@JsType 注释的简单POJO。 Idea 在项目中看到注释类型,但构建失败并显示注释 class 未定义的错误。
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
您的 @JsType
导入错误。应该是
import jsinterop.annotations.JsType;
如果这不起作用,请确保您的依赖项中确实有 jsinterop-annotations
版本 1.0.1。
如果您看到的是旧注释,那么除了 GWT 2.8 之外,您还使用了 GWT 2.7 或更早版本 - 混合版本绝不是个好主意。