2012-01-04 11 views
5

Stavo ottenendo le dipendenze irrisolte come la domanda here.dipendenze non risolte sbt sbt_2.9.1; 0.7.4 sbt_2.9.1; 0.7.7:

Getting org.scala-tools.sbt sbt_2.9.1 0.7.7 ...

:::::::::::::::::::::::::::::::::::::::::::::: 

    ::   UNRESOLVED DEPENDENCIES   :: 

    :::::::::::::::::::::::::::::::::::::::::::::: 

    :: org.scala-tools.sbt#sbt_2.9.1;0.7.7: not found 

    :::::::::::::::::::::::::::::::::::::::::::::: 

risposta

6

SBT 0.7.7 utilizza Scala 2.7.7 per la configurazione del progetto. SBT 0.11 utilizza Scala 2.9.1. È possibile utilizzare SBT 0.7.7 per configurazioni fino a quella versione, ma le versioni di SBT più recenti di 0.7.7 utilizzano un file di configurazione non compatibile.

Si noti che questo non è correlato alla versione di Scala che verrà utilizzata per compilare il progetto stesso, solo la versione di Scala utilizzata per compilare il file di configurazione. Queste sono cose diverse: puoi usare qualsiasi versione di Scala che vuoi compilare, ma devi usare la versione di Scala richiesta dalla versione SBT per compilare la configurazione del progetto.

Per ottenere un messaggio di errore come quello, è necessario aver modificato la versione di Scala per la configurazione del progetto o utilizzato un SBT più recente con un progetto scritto per una versione precedente di SBT. Scopri quale era, e correggi il problema secondo necessità.

Ho un SBT 0.7.7 per progetti che non sono ancora stati migrati alla nuova versione e l'ultimo SBT per tutto il resto. Metti un nome diverso su ogni script e sei a posto.

+0

Daniel, sì, so che la fonte del problema è che il nuovo SBT è stato usato al posto di quello più vecchio, quindi, ho detto _update_ o _remove_ sbt.version. Sentiti un po 'ingiusto per ottenere il voto negativo. Proverò a riformulare la mia risposta un po 'per essere elanorata come la tua !. Grazie. –

+0

@ user319058 Non ti ho minimizzato, e la tua soluzione sembra abbastanza buona. E, naturalmente, se lo risolve per te, allora risolvilo lo fa. –

+0

Daniel, haha, non penso che sei tu a non votare né io né nessuno in particolare. Commento la tua risposta in cambio di gratitudine! btw/elanorate/elaborate –

0

ho notato che il problema può essere risolto aggiornando o rimuovendo la voce sbt.version da project_root_folder/progetto /build.properties La mia versione attuale di sbt è 0.11.2 e l'ho aggiornata a sbt.version = 0.11.2. Rimozione della voce funziona anche.

+0

Mentre la rimozione di solito funziona, solitamente non è la soluzione migliore. È preferibile utilizzare un programma di avvio in grado di eseguire la versione prevista di sbt. – leedm777

4

Mentre sbt-launch.jar fa un tentativo di scaricare e utilizzare la versione di sbt specificata nel progetto project/build.properties, devono essere compilati con le versioni corrispondenti di Scala. Penso che sbt 0.7.7 sia stato compilato con Scala 2.7, ma le versioni più recenti di sbt sono compilate con Scala 2.9.

La maggior parte delle persone ora utilizza solo una versione di sbt-launch.jar corrispondente alla versione specificata in project/build.properties. Se utilizzi Linux, OS X o qualsiasi cosa che possa eseguire uno script Bash, ti consiglio vivamente lo launch script da sbt-extras. Utilizzerà automaticamente la versione di sbt-launch.jar in base a quanto specificato in project/build.properties e fornirà altri utili parametri della riga di comando.

Se ciò non funziona per te, penso che la soluzione migliore sia rappresentata da diversi script di avvio per lanciare le diverse versioni minori di sbt. Come ad esempio sbt7, sbt10 e sbt11, che lanciano rispettivamente 0.7.7, 0.10.1 e 0.11.2.

Problemi correlati