SBT запускает разрешение зависимостей каждый раз после clean
, даже если конфигурация управления зависимостями проекта не изменилась. Это занимает много времени при работе на сервере CI.
Но документация говорит:
- Обычно, если никакая конфигурация управления зависимостями не изменилась с момента последнего успешного разрешения, и восстановленные файлы по-прежнему present, sbt не просит Айви выполнить разрешение.
Как я могу остановить sbt от выполнения зависимостей при каждом создании проекта с помощью sbt clean publish-local
?
Обновление
Я обнаружил, что sbt также выполняет разрешение при входе в интерактивный режим с sbt
.
Update2
Поскольку @Ezhik
указывает, могу ли я сохранить target/resolution-cache
, тогда sbt не будет определять зависимости после очистки.
Поэтому я попытался вывести resolution-cache
из целевого каталога:
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)
}
Теперь с этим кодом в Build.scala
кэш проекта помещается в корень проекта и поэтому сохраняется после clean
, но разрешение все равно выполняется. Поэтому я предполагаю, что этот подход неправильный или недостаточный.