Goyave r07, GWT et javax.annotation.Nullable
Je suis en train d'utiliser, de Goyave, dans un projet GWT sans succès (un HashMultimap, pour être précis). Je reçois une liste interminable de stacktraces pour les classes:
- com.google.commun.collecter.ComparisonChain
- com.google.commun.collecter.ForwardingSortedSetMultimap
- com.google.commun.collecter.La commande
- ...
Chaque trace de la pile est le long des lignes de:
- ligne xx: l'import javax.annotation ne peut pas être résolu
- ligne xx: les valeurs null ne peut pas être résolu à un type
- ligne xx: les valeurs null ne peut pas être résolu à un type
- ligne xx: les valeurs null ne peut pas être résolu à un type
- ...
Regardant le code, chaque fichier qui déclenche une erreur comprend:
import javax.annotation.Nullable;
et, en regardant les guava-src-r07.jar, chacune des classes utilise un @Nullable annotation.
Je suis en utilisant le JDK6 et en regardant le JDK6 javadoc et...eh bien, je ne peux pas trouver une telle annotation. Puis-je obtenir ces bibliothèques à travailler avec un projet GWT et JDK6?
P. S. - Quelle version de Java utilisez-vous là-bas?
- Vous avez absolument, positivement 100% n'est PAS censé avoir besoin d'aller à la chasse pour un jsr305 jar vous-même! guava-gwt.jar est censé travailler pour vous sortir de la boîte, donc veuillez fournir des précisions sur ce qu'est exactement que vous essayez et ce qui se passe; "je obtenir une liste des traces de pile", de quoi exactement?
- Lorsque je fais la même chose, et essayer de la compilation, j'obtiens: la Compilation du module de com.restphone.LingoGwt Validation nouvellement compilé unités [ERREUR] les Erreurs dans 'jar:file:/Users/james/lib/guava-r08/guava-r08-gwt.jar!/com/google/common/base/Equivalence.java' [ERREUR], Ligne 20: L'import javax.annotation ne peut pas être résolu [ERREUR], Ligne 51: les valeurs null ne peut pas être résolu à un type [ERREUR], Ligne 51: les valeurs null ne peut pas être résolu à un type [ERREUR] la Ligne 60: les valeurs null ne peut pas être résolu à un type
- Signalé comme un bug: code.google.com/p/guava-libraries/issues/detail?id=586
- Et maintenant, on dirait qu'il est fixé dans la goyave 09 rc3. code.google.com/p/guava-libraries/downloads/list
- ce n'est pas fixe dans r09 à compter de la présente publication, il vous reste à ajouter teh jsr305 dépendance Maven manuellement!
- J'ai eu ce problème lors de la compilation de l'Étrier, basé sur Goyave r08. Je suis passé à r09 et ça ne fonctionne pas, puis passer aux 10.0.1, et il est automatiquement téléchargé aussi la JSR305 de dépendance.
- J'ai eu quelque chose de semblable: en Vertu de la sbt sur jdk 1.7.0_{21,45} avec goyave comme une dépendance entre autres, la compilation a échoué car javax.annotation.Non, ne pouvait pas être résolu. Ce qui s'est passé lors de l'ajout ou de la suppression apparemment arbitraire des dépendances (en particulier code.google.com/p/compilation-toolbox il fixe). Quand j'ai trouvé cette question, j'ai juste ajouté mvnrepository.com/artifact/com.google.code.findbugs/jsr305 comme la dépendance et voila problème résolu. Ennuyeux.
Vous devez vous connecter pour publier un commentaire.
Hum... je pense que c'est le jsr305 vous êtes à la recherche pour. Jetez un oeil à
http://www.findjar.com/jar/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.html
Il doit être mieux ici: http://code.google.com/p/guava-libraries/source/browse/#svn/trunk/lib
là où je vois l' @Nullable annotation
Comme écrit ci-dessus, le problème semble être résolu lors de l'utilisation de goyave 10.0.1, qui a une dépendance sur le JSR305 bibliothèque.
Sinon, l'ID de la bibliothèque manquante pour ajouter à Maven est
com.google.code.findbugs:jsr305:1.3.9
, de sorte que la configuration de build doit être fixé par adjonction de la dépendance à pom.xml à l'endroit approprié (attention, je ne l'ai pas tester ce):Mise à jour: Utilisateur @ips a suggéré d'ajouter
<scope>provided</scope>
depuis le jsr305 pot n'est pas nécessaire lors de l'exécution, et la mise à jour vers la version2.0.1
. Je sais que le premier changement de sens, et je pense que la version mise à jour aussi.Dans mon expérience, à l'aide de
<scope>provided</scope>
créé des problèmes pour Scala, mais c'est une question distincte.Vous avez besoin pour obtenir la JSR 305 POT, mais en plus, vous devez inclure le
@Nullable
annotation du code source de nourriture pour le compilateur GWT.En supposant que votre projet est en cours de
com/example/myproject/
Créer un fichier:
com/example/myproject/annotation/javax/annotation/Nullable.java
Avec le contenu suivant:
Ajouter la ligne
MyProject.gwt.xml
:Et vous êtes bon pour aller.
<module rename-to='Annotation'> <source path=''/> </module>
et bien sûr l'héritage de ce dans le cadre de mes projets .gwt.xml fichier. Eu ce truc de ici