Warum muss ich hinzufügen Artefakt JSR305 zu verwenden, Guave 14+?
Während der Suche nach Informationen auf stackoverflow habe ich eine Frage ähnlich wie meine, aber keine wirkliche Antwort hier.
Muss ich die Migration meiner maven-Projekt aus Guave 11.0.2 zu Guave 14 oder höher (ich brauche RangeSet). Ich aktualisierte mein maven-pom mit der Abhängigkeit:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0</version>
</dependency>
Ich dann die maven-build, und habe diesen Fehler:
[ERROR] xxx.java: cannot find symbol
[ERROR] symbol : class Nonnull
[ERROR] location: package javax.annotation
Nahm ich einen Blick näher, und diese Anmerkungen mit JSR305, auf dem hängt Guave 11.0.2, als mvn-repository berichten.
Was ich seltsam finden ist, dass Guave 14 hängt auch davon ab, JSR305 als mvn-repository berichten.
Wenn ich die JSR-Abhängigkeit zu meinem pom, dann ist die Zusammenstellung gerade gut läuft:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>1.3.9</version>
<scope>provided</scope>
</dependency>
Aber warum hätte ich hinzufügen müssen, um diese Abhängigkeit zu meinem pom, wenn Guave bereits hängt es ? Das sieht mehr ein workaround als eine Lösung, und ich würde es vorziehen, zu verstehen und die Dinge sauber.
Vielen Dank für die Teilnahme.
- Ich scheine zu erinnern, dass dies ist notwendig, wenn mit der Scala-compiler ist, dass dein setup?
- Speziell, stackoverflow.com/questions/10007994/...
- Das ist nicht mein setup, da ich ein java-Projekt. Aber das Thema ist sehr nah an mir...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Grund, dass Sie brauchen, um hinzuzufügen, ist es wie eine Abhängigkeit, weil Guave 14 definiert die Abhängigkeit in Ihrer pom wie folgt:
Der wichtige Teil für das problem ist die
<scope>provided</scope>
Linie.Aus der maven - website Sie die folgenden Angaben mit Bezug auf
provided
Abhängigkeiten:Also im Grunde, weil Guave haben dies als eine
provided
Abhängigkeit, die Sie erwarten, wer verbraucht Guave zu bieten, diese Abhängigkeit, das ist genau das, was Sie zu tun hatten.In Guava 11.0.2, es war eine normale
compile
Abhängigkeit, damit Sie nicht haben, um es in Ihr eigenes Projekt.Die änderung wurde vorgenommen, Guave 13. Aus der release notes:
jsr305
als Abhängigkeit, wenn ich die Reflexion auf meinen code muss ich Gefahr laufen, eine Ausnahme ausgelöst wird, weil eine Methode gibt an, dass es die@Nonnull
annotation beispielsweise nochjsr305
war nicht Bestandteil der binäre?