Mentre cercavo informazioni sullo stackoverflow, ho visto una domanda simile alla mia, ma senza una risposta reale here.Perché ho bisogno di aggiungere artefatto JSR305 per usare Guava 14+?
ho bisogno di migrare il mio progetto Maven da guava 11.0.2 a guava 14 o superiore (ho bisogno RangeSet). Ho aggiornato il mio esperto di pom con la dipendenza:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0</version>
</dependency>
ho quindi eseguire la build Maven, e ottenuto questo errore:
[ERROR] xxx.java: cannot find symbol
[ERROR] symbol : class Nonnull
[ERROR] location: package javax.annotation
ho preso uno sguardo più da vicino, e questo le annotazioni è dotato di JSR305 , da cui dipende guava 11.0.2, come mvn repository lo segnala.
Quello che trovo strano è che guava 14 dipende anche JSR305 come mvn repository rapporti.
Se aggiungo la dipendenza JSR al mio pom, poi la compilazione just funziona bene:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>1.3.9</version>
<scope>provided</scope>
</dependency>
Ma perché avrei dovuto aggiungere questa dipendenza al mio pom se guava dipende già su di esso? Questo sembra più una soluzione che una soluzione, e preferirei capire e rendere le cose pulite.
Grazie per aver partecipato.
Mi sembra di ricordare che questo è necessario quando si utilizza il compilatore Scala - è che la configurazione? –
In particolare, http://stackoverflow.com/questions/10007994/why-do-i-need-jsr305-to-use-guava-in-scala –
Questa non è la mia configurazione, dal momento che costruisco un progetto java. Ma il problema è molto vicino al mio ... –