2013-07-30 20 views
11

http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Library-Dependencies.htmlSpecyficzna składnia zależności bibliotek zakresów w SBT?

Jeśli chcesz zależność, aby pokazać się w ścieżce klasy tylko dla konfiguracji testu a nie konfiguracji kompilacji dodać% "test" jak tym:

libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3" % "test" 

Czy ktoś może wyjaśnić, dlaczego używamy tego zapisu? Mam na myśli konfigurację na końcu?

Dlaczego nie możemy napisać coś takiego:

libraryDependencies in Test += "org.apache.derby" % "derby" % "10.4.1.3" 

Odpowiedz

4

Konfiguracja jako ciąg na końcu jest Ivy configuration i bardziej dokładnie opisane jako odwzorowanie konfiguracji. in Test nie obejmuje wszystkich przypadków użycia, mimo że obejmuje typowe.

Strona Detailed-Topics/Dependency-Management dla wersji 0.13 zawiera więcej informacji na ten temat. Konfiguracje są funkcją Ivy. Można je uważać za uogólnienie zakresów Mavena.

Należy zauważyć, że wszystko poza zakresami Maven wymaga metadanych w postaci pliku bluszcz.xml. Dzieje się tak w przypadku metadanych publikowanych w lokalnym repozytorium z lokalnym opubliko- waniem, publikowanych w repozytorium Ivy lub w lokalnym kompilacji przed publikacją. Metadane w postaci pliku pom.xml, np. Pochodzącego z Maven Central, są ograniczone do standardowych zakresów Mavena.

+0

dzięki Myślę, że teraz rozumiem. Nie można zrobić z mavenem, prawda? Ponieważ maven używa lokalnych opublikowanych artefaktów i tylko src/main/jest publikowany. 'test-> test' może być przydatny w niektórych przypadkach dla mnie –

+0

edytowane ze szczegółami na temat relacji z Maven i zakresami –

Powiązane problemy