clean
即使项目依赖管理配置没有更改,SBT 每次都会运行依赖解析。在 CI 服务器上运行时,这很耗时。
但文件说:
- 通常,如果自上次成功解析后没有更改依赖管理配置并且检索到的文件仍然存在,则 sbt 不会要求 Ivy 执行解析。
每次我用 构建项目时,如何阻止 sbt 进行依赖解析sbt clean publish-local
?
更新
我发现当我进入交互模式时 sbt 也会运行分辨率sbt
。
更新2
正如所@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
,但无论如何解析正在完成。所以我认为这种方法是错误的或不足的。