Заставить Гуаву работать на GWT - PullRequest
3 голосов
/ 15 марта 2012

Я не могу заставить Гуаву работать с GWT.Я использую Eclipse, я добавил guava-11.0.2.jar и guava-gwt-11.0.2.jar в мой путь к классу, унаследовал модуль com.google.common.collect.Collect в моем gwt.xml файле, но все еще не могу заставить его работать.

Он компилируется, но когда я запускаю его, появляется много ошибок.Многие из них ссылались на неразрешимую аннотацию javax.annotation.Nullable

Я пытался добавить jsr305.jar к своему пути к классам, но ничего не изменилось.

Также появляются некоторые ошибки в зависимости от того, какую версию Guava я включаю (пробовал с 11.0.2, 11.0.1, 10.0.1) и если я включаю или нет jsr305.jar

НекоторыеПримеры таких ошибок:

  • Тип PersonActivity.PersonFilterPredicate должен реализовывать унаследованный абстрактный метод Predicate<PersonRoleProxy>.apply(Object)
  • Метод compare(T, T) в типе Ordering<T> не применим дляаргументы (Object, Object)

Что довольно странно, потому что код компилируется, и подобные ошибки должны появляться во время компиляции.

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

Мы смущенно не смогли найти решение проблемы @Nullable, которую мы считаем проблемой GWT. Вы можете следить за этим по номеру http://code.google.com/p/guava-libraries/issues/detail?id=776 Мы пытаемся получить помощь от команды GWT, но в последнее время для людей, которые работают с интересующим нас компилятором, дела идут безумно. похоже, что вы можете обойти эту проблему, удалив -strict из аргументов компиляции GWT, но, конечно, это ужасный обходной путь.

Опыт других пользователей показывает, что другие странные ошибки, которые вы видите, связаны с проблемой @Nullable, хотя я не получил окончательного подтверждения. Вы также можете подтвердить, что весь ваш импорт com.google.common.*, а не com.google.gwt.thirdparty.guava.common.*

Извините за все проблемы. Это один из немногих крупных шипов на нашей стороне в настоящий момент.

1 голос
/ 08 февраля 2013

Следующий обходной путь работает для GWT 2.4.0 с

  • Гуава 14.0 RC1 и
  • jsr305-1.3.9.jar

Создайте файл с именем Annotation.gwt.xml со следующим содержанием:

<module>
  <source path=""/>
</module>

В архиве jsr305-1.3.9.jar скопируйте этот файл в подкаталог javax / annotation.

Добавьте следующую строку в файл приложения .gwt.xml:

  <inherits name='javax.annotation.Annotation'/>
...