代码之家  ›  专栏  ›  技术社区  ›  Rich

在GWT中使用番石榴

  •  10
  • Rich  · 技术社区  · 15 年前

    有人能告诉我在GWT中如何实现Guava支持吗?

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

    • 瓜拉R07.JAR
    • 番石榴-r07-gwt.jar

    关于这一点,我有几个问题:

    1. 这些文件放在哪里?我猜想标准JAR可以用于我的IDE进行编码,而这两者都可以用于GWT编译器构建JavaScript?
    2. 我是否需要将-gwt.jar中的所有.gwt.xml文件添加到我的项目的主gwt.xml文件中,或者只添加我需要的部分?
    3. guava&gwt项目的主干上还有其他jar(即不在下载中,比如jsr305的jar),我认为可能需要,但我不确定。

    对不起,一般情况下,我对这类事情不感兴趣,但我不太明白该怎么做。

    仅供参考,我目前正在使用GWT 1.6,但我希望很快能移动到2。如果番石榴和1.6不兼容,那不是问题。

    更新

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

    • 番石榴-r07-gwt.jar
    • 瓜拉R07.JAR
    • JSR305-1.3.9.罐

    我的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/谷歌/公共/收集/约束。
    • 第254行:对于类型列表,方法子列表(int,int)未定义

    如果没有类路径上的JSR JAR,我会得到以下错误:

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

    谢谢

    丰富的

    2 回复  |  直到 14 年前
        1
  •  3
  •   Hayward Chan    15 年前

    番石榴与GWT 1.6不兼容。list.sublist,尤其是在gwt 2中添加到gwt中。我们完全支持的最早版本是GWT 2.0.4

        2
  •  13
  •   Jason Hall    15 年前
    1. 将这些jar添加到类路径中。如果使用的是IDE,请右键单击包导出器中的“引用库”,将它们添加到构建路径中,选择“配置构建路径”,然后将它们添加为外部JAR。
    2. 您只需要继承计划在.gwt.xml文件中使用的模块。例如,如果只使用 common.collect 包,只需添加 <inherits name="com.google.common.collect.Collect" />
    3. 您可能不需要jsr305.jar,但如果需要,只需按照添加其他jar的方式添加它。

    瓜娃应该可以和GWT1.6一起工作,如果不是,那么它可能是一个bug。

    推荐文章