2011-11-22 13 views
28

Mam następujące wiersze w moim pliku build.sbt.Ponownie pobierz zależność zależną od SNAPSHOT przy użyciu SBT

resolvers += "specs2 snapshot repo" at "http://scala-tools.org/repo-snapshots" 

libraryDependencies += "org.specs2" %% "specs2" % "1.7-SNAPSHOT" % "test" 

Teraz jeśli migawka uległa zmianie (jest to uzasadnione w ogóle, że Maven SNAPSHOT zmiany Wersja bez zmiany jego numer wersji?), Jak mogę powiedzieć SBT aby pobrać nową wersję? Użycie update nic nie robi.

Odpowiedz

51

należy spróbować:

libraryDependencies += "org.specs2" %% "specs2" % "1.7-SNAPSHOT" % "test" changing() 

changing() będzie określić, że uzależnienie może się zmienić i że bluszcz musi pobrać go na każdym update.

Być może możesz również spróbować zdefiniować swoje repozytorium za pomocą ivyXML. Coś takiego:

ivyXML := 
    <resolvers> 
        <ibiblio name="specs2 snapshot repo" changingPattern="*-SNAPSHOT" m2compatible="true" root="http://scala-tools.org/repo-snapshots"/> 
    </resolvers> 

Mam nadzieję, że to pomoże.

+2

Spodziewałem się, że ta opcja nie musi być określona, ​​ale można ją wywnioskować z ciągu * SNAPSHOT *. Czy sbt/ivy sprawdza tylko sumy kontrolne i nie pobiera ponownie, jeśli słoik się nie zmienił? – ziggystar

+0

Ivy definiuje 'matchingPattern', którego można użyć podczas definiowania resolwera. To 'matchingPattern' daje możliwość zdefiniowania wzorca (na przykład' "* -SNAPSHOT" ') dla artefaktów, które ostatecznie zmienią się w czasie. Powinieneś spróbować zdefiniować przelicznik z tym atrybutem, używając ustawienia 'ivyXML', może SBT rozważy to. – David

+7

Co najmniej w wersji 0.12.1 nie trzeba określać zmiany: http://www.scala-sbt.org/release/docs/Detailed-Topics/Dependency-Management-Flow.html Ostatnia linia: "There nie ma potrzeby oznaczania zależności SNAPSHOT jako change(), ponieważ sbt konfiguruje Ivy, aby to już wiedzieć. " –

Powiązane problemy