用番石榴配GWT

用番石榴配GWT,gwt,guava,Gwt,Guava,有人能告诉我需要做些什么来支持GWT中的番石榴吗 我已经下载了Guava R07,其中有以下两个文件: 番石榴-r07.jar 番石榴-r07-gwt.jar 关于这一点,我有几个问题: 这些文件放在哪里?我猜我的IDE可以使用标准Jar进行编码,GWT编译器也可以使用标准Jar构建JavaScript 我需要将-gwt.jar中的所有.gwt.xml文件添加到项目的主gwt.xml文件中,还是只添加我需要的部分 Guava&GWT项目的主干上还有其他jar(即不在下载中,比如jsr305)

有人能告诉我需要做些什么来支持GWT中的番石榴吗

我已经下载了Guava R07,其中有以下两个文件:

  • 番石榴-r07.jar
  • 番石榴-r07-gwt.jar
关于这一点,我有几个问题:

  • 这些文件放在哪里?我猜我的IDE可以使用标准Jar进行编码,GWT编译器也可以使用标准Jar构建JavaScript
  • 我需要将-gwt.jar中的所有.gwt.xml文件添加到项目的主gwt.xml文件中,还是只添加我需要的部分
  • Guava&GWT项目的主干上还有其他jar(即不在下载中,比如jsr305),我想我可能需要,但我不确定
  • 对不起,通常我对这类事情没有什么问题,但我不太清楚什么会发生

    仅供参考,目前我正在使用GWT1.6,但我希望很快可以升级到2。如果番石榴与1.6不兼容,这不是问题

    更新 我在一个名为gwtlib的文件夹中有以下文件:

    • 番石榴-r07-gwt.jar
    • 番石榴-r07.jar
    • jsr305-1.3.9.jar
    我的Ant脚本执行以下操作:

    <path id="project.class.path">
        <fileset dir="gwtlibs" includes="guava-r07.jar"/>
        <fileset dir="gwtlibs" includes="guava-r07-gwt.jar"/>
        <fileset dir="gwtlibs" includes="jsr305-1.3.9.jar"/>
        <pathelement location="${gwt.sdk}/gwt-user.jar"/>
        <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
    </path>
    
    <target name="gwtc">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
            <classpath>
                <pathelement location="app"/>
                <path refid="project.class.path"/>
            </classpath>
            <jvmarg value="-Xmx256M"/>
            <arg value="-localWorkers"/>
            <arg value="2"/>
            <arg value="-war"/>
            <arg value="gwt-public"/>
            <arg value="Main"/>
        </java>
    </target>
    
    
    
    运行上述命令时,会出现以下错误:

    • “jar”中的错误:file:///project/gwtlibs/guava-r07-gwt.jar!/com/google/common/collect/Constraints.java'
    • 第254行:类型列表的方法子列表(int,int)未定义
    如果类路径上没有jsr jar,则会出现以下错误:

    • 无法解析import javax.annotation
    • 无法将Nullable解析为类型
    谢谢

    丰富的

  • 将这些JAR添加到类路径中。如果您使用的是IDE,请通过右键单击PackageExporer中的“引用库”将它们添加到构建路径中,选择“配置构建路径”并将它们添加为外部JAR
  • 您只需要继承计划在.gwt.xml文件中使用的模块。例如,如果只使用
    common.collect
    包,只需添加
  • 您可能不需要jsr305.jar,但如果需要,只需按照添加其他jar的方式添加它即可

  • 番石榴应该可以与GWT1.6配合使用,如果不能配合,那可能是一个bug。

    番石榴与GWT1.6不兼容。特别是,在GWT2中,List.subList被添加到GWT中。我们完全支持的最早版本是GWT 2.0.4

    我用更多信息编辑了我的问题……这对这个主题有帮助吗?听起来你需要jsr305.jar。至于你的另一个问题,我不知道是什么原因造成的……不过,你需要确保你坚持使用带有@GwtCompatible注释的类。这个答案实际上并没有解释如何让番石榴在GWT下工作。请相应地更新它。让Guava在GWT2.0.4及更高版本中工作非常简单,您只需像任何其他库一样将其包含在类路径中(记住任何特定于GWT的JAR),GWT编译器就会发挥它的魔力。Hayward对我最初问题的回答(基本上是“为什么Guava不能在GWT1.6上工作?”)足以让我看到我在浪费时间试图让它工作。这里有一个类似的问题和答案:实际使用没有问题。多谢帕皮克——我差不多两年前问过我的问题——从那时起,GWT和番石榴都有了实质性的发展,而GWT和番石榴的最新版本肯定是相互兼容的。