我正在尝试在GWT 2.8项目中使用Guava 20.0,但是当我尝试编译时遇到错误;
...
[ERROR] Errors in 'com/google/common/base/Function.java'
[ERROR] Line 64: CanIgnoreReturnValue cannot be resolved to a type
[ERROR] Line 18: The import com.google.errorprone cannot be resolved
[ERROR] Errors in 'com/google/common/base/Supplier.java'
...
我在网上找到的解决方案;
Including Guava GWT in GWT app
https://github.com/gwtproject/gwt/issues/9323
对我来说有点不清楚。 以前为了让Guava工作,我补充说;
<inherits name="com.google.common.collect.Collect" />.
到我项目的gwt.xml。
我假设这已经改变了,我需要再添加两个? 或者我是否还需要单独下载* .jars? (是否有我需要使用的那些罐子的gwt版本,就像guava-gwt一样?)
如果有关于使用番石榴的这些更改我缺少一些文档,我很抱歉,但我在番石榴网站上找到的所有文件都提到需要使用GWT2.8,我已经这样了。
因此,欢迎任何有关在新GWT中使用新番石榴的当前(2016年11月)方法的建议。 谢谢,
注意; 我只使用Eclipse,没有Maven或Gradle等。 我的项目也只是客户端,没有服务器。
更新
下面是如何设置我的类路径;
答案 0 :(得分:1)
从Guava's pom.xml
开始,您需要jsr305(版本1.3.9,来自parent POM),error_prone_annotations(2.0.12)和j2objc-annotations(1.1)。
答案 1 :(得分:0)
好的,按照这里的建议; https://groups.google.com/forum/#!topic/google-web-toolkit/gPlwknBXlXs
如果我创建两个包含内容的相同gwt.xml文件,它确实可以排序;
<module>
<inherits name="com.google.gwt.core.Core" />
<source path=""/>
<source path="concurrent"/>
<super-source path="super" />
</module>
然后我将这些文件放在包中;
com.google.errorprone.annotations
com.google.j2objc.annotations.Annotations
并添加;
<inherits name="com.google.errorprone.annotations.Annotations" />
<inherits name="com.google.j2objc.annotations.Annotations" />
到我的主要项目gwt.xml
这可以让项目进行编译,所以从技术上来说它可以回答这个问题。
然而;
a)这似乎是一个hackjob。
b)虽然没有错误,但现在还有一个巨大的警告仍然与番石榴相关。 例如;
Resolving com.google.common.collect.AbstractMapBasedMultiset
Found type 'com.google.common.collect.AbstractMapBasedMultiset'
Found type 'com.google.common.collect.AbstractMultiset'
Resolving method add
[WARN] Ignoring unresolvable annotation type com.google.errorprone.annotations.CanIgnoreReturnValue
Resolving method add
[WARN] Ignoring unresolvable annotation type com.google.errorprone.annotations.CanIgnoreReturnValue
Resolving method remove
[WARN] Ignoring unresolvable annotation type com.google.errorprone.annotations.CanIgnoreReturnValue
Resolving method remove
...
...(many pages of this and identical errors in other classes)
出于这个原因,我不认为这个问题真的得到了回答,更多的是这只是当前的解决方法。