2016-05-14 56 views
42

Ho spinto il mio artefatto su oss nexus repo, lo ho aggiunto come dipendenza da un altro progetto. L'idea mi fa avvertire:Idea, sbt, incapacità di ri-avviso

[warn] Unable to reparse com.github.kondaurovdev#jsonapi_2.11;0.1-SNAPSHOT from sonatype-snapshots, using Fri May 13 17:12:52 MSK 2016 [warn] Choosing sonatype-snapshots for com.github.kondaurovdev#jsonapi_2.11;0.1-SNAPSHOT 

Forse ho spinto artefatto in qualche modo in modo sbagliato? Ma l'ho fatto prima, era tutto ok. Come sbarazzarsi di questi avvertimenti? O semplicemente ignorali?

+2

Ho fatto una linea di base 3 build.sbt che riproduce il problema: resolver + = Resolver.sonatypeRepo ("istantanee") libraryDependencies + = "org.postgresql" % "PostgreSQL" % "1209/09/04-istantanea" Quindi eseguire 'sbt update' – kshakir

+1

Ho lo stesso problema. Questo messaggio viene visualizzato e viene utilizzato l'artefatto SNAPSHOT dal repository remoto, ignorando quello pubblicato localmente. – giannoug

+2

FYI- Ho eseguito il build.sbt in 1.0.0-M4 con lo stesso effetto. Non posso dirlo tramite [github] (https://github.com/sbt/sbt/blame/v0.13.11/ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala#L225-L240) [fonte ] (https://github.com/sbt/librarymanagement/blame/v0.1.0-M11/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala#L228-L243) se l'avviso è un bug o funzionalità. (Nota a margine: ho ottenuto oltre http://stackoverflow.com/q/37126026/3320205 con 'addMavenResolverPlugin', ma ho eseguito il" Impossibile leggere il descrittore di artefatti ".) Forse sbt-dev potrebbe dover essere sottoposto a ping? – kshakir

risposta

16

Ho avuto lo stesso problema.

Hai pubblicato la tua versione SNAPSHOT sul tuo artefatto? Se è così this potrebbe essere il tuo problema.

Come sapete quando pubblicate localmente la vostra versione di istantanee è memorizzata nella directory .ivy2/local. La versione remota è memorizzata nella directory .ivy2/cache.

Quando si esamina la cartella .ivy2/cache/{dependency}, si vedrà che ha scaricato solo il file xml e le proprietà. Quindi solo i metadati e niente barattoli. Questo è il vero motivo per cui non può essere analizzato poiché non è lì.

Poiché la .ivy2/cache ha la precedenza su .ivy2/local, non vedrà la versione pubblicata locale. Ci sono 2 modi per risolvere questo problema.

  • Aggiornare il numero di versione di snapshot (consigliato)
  • Rimuovere l'istantanea dal vostro Artifactory e rimuovere la cartella .ivy2/cache/{} dipendenza su ogni client che dispone di una versione locale.

Secondo me il primo è la strada da percorrere.

+2

Ho anche avuto un secondo problema che ha anche causato lo stesso errore. Avevo la stessa libreria ma una versione precedente nella directory unmanagedBase. Cancellare questa vecchia versione dalla directory sarebbe la correzione – Jork

+0

Grazie per la risposta, cosa intendi per aggiornare la tua versione di istantanea? pubblicare di nuovo localmente non risolve questo problema. – raam86

+0

@ raam86 Intendevo aggiornare il numero di versione.Quindi, in effetti, pubblicare una nuova versione – Jork

8

Ho avuto lo stesso problema, e va via dopo aggiungo il seguito della mia build.sbt:

updateOptions := updateOptions.value.withLatestSnapshots(false) 

Potete trovare maggiori dettagli dalla https://github.com/sbt/sbt/issues/2650

+0

Dove dovrebbe andare nel file di costruzione? Ho ricevuto un errore quando lo inserisco alla fine del file di build –

+0

questa chiave è ancora disponibile in sbt 0.13.16? Io non riesco a trovarlo – JayZee