2015-12-26 28 views
19

Sono un nuovo utente di Scala, seguendo il modo di creare un progetto scala sbt.Scala sbt: dipendenze multiple in sbt

https://www.youtube.com/watch?v=Ok7gYD1VbNw


Dopo aver aggiunto

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test" 

a build.sbt, e rinfrescato il progetto, ho ottenuto questo msg.

[warn] Dipendenze multiple con la stessa organizzazione/nome ma versioni differenti. Per evitare il conflitto, scegliere una versione:

[avvertire] * org.scala-lang: Scala-riflettere: (2.11.2, 2.11.7)

[avvertire] * org.scala-lang.modules : scala-xml_2.11: (1.0.2, 1.0.4)

E in build.sbt, parola thw 'ScalaTest' è rosso che significa che è un dipendenze irrisolti.

Devo cambiare qualcosa in Impostazioni progetto, come scala sdk?

Best Regard!

+0

non appena non si verifica, non dovrebbe essere un problema. controlla per 'errore's. Se ce ne sono - stampali qui. – Rumoku

+0

Se usi IntellJ Idea, tutto può essere rosso in 'build.sbt', ma verrà comunque compilato. Il parser IDE a volte non è in grado di analizzare le cose (codice scala), quindi di solito puoi ignorare le cose rosse finchè compila. Lo stesso probabilmente è vero per altri IDE. – Archeg

+0

@Archeg Se la mia configurazione è corretta, posso eseguire il file di test, giusto? Al momento, non riesco nemmeno a "eseguire" l'IDE facendo clic con il pulsante destro del mouse sul file. –

risposta

23

Si potrebbe considerare l'aggiunta di quelle dipendenze:

libraryDependencies ++= Seq(
    "org.scala-lang" % "scala-reflect" % "2.11.7", 
    "org.scala-lang.modules" % "scala-xml_2.11" % "1.0.4" 
) 

costringe compilatore di scegliere la versione concreta di librerie. Risolve il problema per me.

+2

Mi chiedo perché Idea non riesca a capirlo da solo con 'scalaVersion: =" 2.11.7 "' in 'build.sbt' –

+0

Questo funziona la maggior parte delle volte però ho problemi con le versioni' 1.0.4' e '1.0 .5' di org.scala-lang.modules: scala-xml'. Sono andato a liberarli dalla cache di Ivy, ma senza risultati positivi. – ZbyszekKr

+0

Grazie, ha funzionato per me – vasigorc

6

Sono stato in grado di risolvere questo escludendo questi dalla dipendenza scalatest.

libraryDependencies ++= Seq(
    "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test" 
    exclude("org.scala-lang", "scala-reflect") 
    exclude("org.scala-lang.modules", "scala-xml_2.11") 
) 
+1

Preferisco questo a quanto affermato nella risposta di Bartłomiej Szałach. – ivanorone