Funkcja SBT uruchamia funkcję rozwiązywania problemów za każdym razem po clean
, nawet jeśli konfiguracja zarządzania zależnościami projektu nie uległa zmianie. Jest to czasochłonne podczas działania na serwerze CI.Dlaczego sbt uruchamia rozwiązanie zależności za każdym razem po czyszczeniu?
Ale dokumentacja says:
- Zwykle, jeśli żadna konfiguracja zarządzanie zależność uległa zmianie od ostatniego pomyślnego rozwiązania, a pobrane pliki są nadal obecne , SBT nie pyta Ivy wykonywać uchwały.
Jak mogę powstrzymać od robienia SBT rozdzielczość zależność każdym razem budować projekt z sbt clean publish-local
?
Aktualizacja
Odkryłam, że SBT prowadzi również uchwałę kiedy wprowadzić w trybie interaktywnym z sbt
.
Update2
Jak @Ezhik
wskazał, czy mogę zachować target/resolution-cache
następnie SBT nie rozwiąże zależności od czystości. Więc starałem się poruszać resolution-cache
się z docelowym reż:
ivyConfiguration <<= (externalResolvers, ivyPaths, offline, checksums, appConfiguration, target, streams) map { (rs, paths, off, check, app, t, s) =>
val resCacheDir = t/".."/"resolution-cache"
new InlineIvyConfiguration(paths, rs, Nil, Nil, off, Option(lock(app)), check, Some(resCacheDir), s.log)
}
Teraz z tego kodu w Build.scala
rozdzielczości cache jest umieszczony w katalogu głównym projektu i dlatego jest zachowana po clean
, ale rozdzielczość jest wykonywana tak. Zakładam więc, że takie podejście jest niewłaściwe lub niewystarczające.
Jak mogę to zrobić? –
Zobacz moją aktualizację do pytania –
Własnymi rękami? SBT jest bardzo ekspresyjny. OK specjalnie dla ciebie :))) A dla mnie jako zabawny przypadek. – Ezhik