我正在玩Gwt,想尝试JsInterop。

我定义了一个用@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

最佳答案

您的@JsType导入错误。它应该是

import jsinterop.annotations.JsType;


如果这不起作用,请确保您的依赖项中确实有jsinterop-annotations版本1.0.1。

如果您看到的是旧注解,那么除了GWT 2.8之外,您还使用了GWT 2.7或更早的版本-混合版本永远不是一个好主意。

10-07 13:15
查看更多