2012-12-21 11 views
5

Czy można skonfigurować SBT do korzystania z zupełnie innej wersji biblioteki podczas budowania krzyżowego, w zależności od wersji scala, w której projekt jest budowany?SBT krzyż budynek - wybór innej wersji biblioteki dla innej wersji scala

Na przykład:

  • Przy budowie z Scala 2.9.2 chcę używać "org.scalatest" % "scalatest_2.9.2" % "2.0.M5" % "test"
  • Przy budowie z Scala 2.10.0 chcę użyć "org.scalatest" % "scalatest_2.10.0-RC5" % "2.0.M5-B1" % "test"

Odpowiedz

8

Coś jak to powinno działać:

libraryDependencies <+= scalaVersion(scalatestDependency(_)) 

def scalatestDependency(scalaVersion: String) = scalaVersion match { 
    case "2.9.2" => "org.scalatest" % "scalatest_2.9.2" % "2.0.M5" % "test" 
    case "2.10.0" => "org.scalatest" % "scalatest_2.10.0-RC5" % "2.0.M5-B1" % "test" 
} 

Sądziłem, że w rzeczywistości oznacza to, że wersje biblioteki powinny być odwrotnie? :-)

Możesz zobaczyć wariacje na ten temat w ScalaMock 2 build.

+0

Dzięki! To działa. Wersja My Scala przechodziła jako "2.10.0-RC5", więc musiałem zmienić instrukcję dopasowania, aby użyć wyrażenia regularnego, jak pokazano w linku. Byłoby wspaniale, gdyby istniał sposób, aby zrobić to czysto w pliku .sbt, ale zakładam, że nie ma w tej chwili? – theon

+0

@kim - wielkie dzięki za naprawienie mojego głupiego błędu w kodzie (rumieniec). –

+0

@theon - Nie jestem świadomy żadnego sposobu, aby to zrobić w pliku .sbt, obawiam się. –

Powiązane problemy