2011-11-03 16 views
8

Buduję prosty projekt Scala z SBT 0.11.Jak skonfigurować zarządzane zależności w projekcie SBT 0.11 z Build.scala

Wszystkie pliki kodu są w ~/MyProject/src/main/scala/

~/MyProject/build.sbt jest następujący


name := "MyProject" 

version := "1.0" 

scalaVersion := "2.9.1" 

libraryDependencies ++= Seq(
    "mysql" % "mysql-connector-java" % "5.1.+", 
    "c3p0" % "c3p0" % "0.9.1.2", 
    "org.apache.commons" % "commons-lang3" % "3.0.1", 
    "commons-lang" % "commons-lang" % "2.6", 
    "javassist" % "javassist" % "3.12.1.GA" 
) 

~/MyProject/project/Build.scala jest następujący


import sbt._ 

object MyProjectBuild extends Build { 
    lazy val MyProject = Project("MyProject", file(".")) 
} 

To wydaje się działać prawie w porządku. Projekt się kompiluje i uruchamia. Nazwa projektu jest ustawiona poprawnie (jeśli nie używam Build.scala, wtedy nazwa wydaje się wyglądać jak "default - ????", mimo że jest określona w build.sbt).

Ale problem polega na tym, że zależności nie działają - polecenie update niczego nie pobiera. Jak to naprawić? Czy w tym przypadku muszę określić moje zależności w Build.scala, a nie w build.sbt?

+0

W tytule, masz na myśli 'build.sbt' zamiast' build.scala'? –

+0

@ kipton-barros Nie. Mam na myśli to, że projekt ma 'Build.scala' oprócz' build.sbt' – Ivan

Odpowiedz

17

Czy możliwe jest, że już pobrano zależności projektu, ale nie zdajesz sobie z tego sprawy, ponieważ są one przechowywane w pamięci podręcznej bluszczu? Można wyświetlić ścieżki klasy zarządzany z konsoli SBT z poleceniem

show managed-classpath 

ostatnich wersjach SBT nie przechowywać zarządzanych zależności w katalogu projektu, chyba że projekt jest skonfigurowany tak, aby to zrobić. Jeśli chcesz, możesz dodać następujące do pliku build.sbt:

retrieveManaged := true 

To stworzy ~/MyProject/lib_managed/ katalog i zawartość.

+0

Ale to nie kopiuje bibliotek scala do biblioteki lib_managed ?! Jak mogę to osiągnąć? – Themerius

+4

Możliwe, że będziesz musiał uruchomić komendy SBT 'reload',' clean' i 'update'. –

+0

Niestety to nie działa. 'Scala-compiler.jar' jest nadal zapisywany ~/.sbt/boot/..., byłoby wspaniale, gdyby to mogło być również zapisane w lib_managed. – Themerius

Powiązane problemy