【发布时间】:2017-01-29 02:05:43
【问题描述】:
当我编译 sbt-scala 项目时,对于每次编译,sbt 都会下载或解析 jar,即使该 jar 在 .ivy2 缓存中可用,并且组装需要大量时间。
当我使用 Maven 时,依赖解析完成一次,如果存在于 .M2 中,组件将永远不会尝试下载相同的依赖,并且所有项目将直接引用来自 .M2 的依赖
当 jar 已经在 .ivy2 缓存中可用时,请告诉我有什么方法可以停止此解析或下载。
【问题讨论】:
当我编译 sbt-scala 项目时,对于每次编译,sbt 都会下载或解析 jar,即使该 jar 在 .ivy2 缓存中可用,并且组装需要大量时间。
当我使用 Maven 时,依赖解析完成一次,如果存在于 .M2 中,组件将永远不会尝试下载相同的依赖,并且所有项目将直接引用来自 .M2 的依赖
当 jar 已经在 .ivy2 缓存中可用时,请告诉我有什么方法可以停止此解析或下载。
【问题讨论】:
你可以设置离线工作:
当离线 := true 时,远程快照不会被分辨率更新,即使是明确请求的更新。这应该有效地支持在没有连接到远程存储库的情况下工作。以其他方式证明的可重复示例表示赞赏。显然,更新必须在离线之前成功运行。
引用docs
如果您可以跳过更新阶段。形成 sbt shell:
在更新中设置跳过:= true
如果您只想使用缓存的工件添加到您的 build.sbt
updateOptions := updateOptions.value.withCachedResolution(true)
我个人的偏好是 override default repos 并添加我的本地 maven repo(这样解决方案会发生,但速度很快)
有人遇到了really far 这个问题,设置了一个巨大的堆栈(有趣但不建议)
【讨论】: