Использование гуавы с GWT - PullRequest
       3

Использование гуавы с GWT

10 голосов
/ 26 октября 2010

Может кто-нибудь сказать мне, что мне нужно сделать, чтобы включить поддержку Guava в GWT.

Я скачал Guava R07 и там есть следующие два файла:

  • guava-r07.jar
  • guava-r07-gwt.jar

У меня есть несколько вопросов по этому поводу:

  1. Куда идут эти файлы?Я предполагаю, что стандартный Jar сделан доступным для моей IDE для кодирования, и что оба доступны для компилятора GWT для построения JavaScript?
  2. Нужно ли мне добавлять все файлы .gwt.xml из-gwt.jar в основной файл моего проекта gwt.xml или только в те части, которые мне нужны?
  3. В стволе проекта Guava & GWT есть другие файлы Jar (т. е. не в загрузке, например, один для jsr305)который, я думаю, мне может понадобиться, но я не уверен.

Извините, обычно у меня нет проблем с такими вещами, но я не могу понять, что и где.

К вашему сведению, я пока использую GWT 1.6, но надеюсь скоро перейти на 2.Если Guava не совместим с 1.6, это не проблема.

Обновление

У меня есть следующие файлы в папке с именем gwtlib:

  • guava-r07-gwt.jar
  • guava-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. Метод subList (int, int) не определен для типа List

Без jsr-файла на пути к классам, Iполучить следующие ошибки:

  • Не удается разрешить импорт javax.annotation
  • Невозможно разрешить Nullable для типа

Спасибо

Rich

Ответы [ 2 ]

13 голосов
/ 26 октября 2010
  1. Добавьте эти банки в ваш путь к классам. Если вы используете IDE, добавьте их в свой путь сборки, щелкнув правой кнопкой мыши «Ссылки на библиотеки» в Exporer пакета, выберите «Настроить путь сборки» и добавьте их в качестве внешних JAR-файлов.
  2. Вам нужно только наследовать модули, которые вы планируете использовать, в вашем файле .gwt.xml. Например, если вы используете только пакет common.collect, просто добавьте <inherits name="com.google.common.collect.Collect" />
  3. Возможно, вам не нужен jsr305.jar, но если вы это сделаете, просто добавьте его так же, как вы добавили другие банки.

Guava должен нормально работать с GWT 1.6, если нет, то это, вероятно, ошибка.

3 голосов
/ 29 октября 2010

Гуава не совместима с GWT 1.6.В частности, List.subList добавлен в GWT в GWT 2. Самая ранняя версия, которую мы полностью поддержали, это GWT 2.0.4

...