2016-09-21 52 views
0

当我编译sbt-scala项目时,对于每个编译,sbt正在下载或解析jar,即使该jar在.ivy2缓存中可用,并且它需要花费很长时间进行组装。SBT每次编译代码时下载或解析Jar

当我使用Maven,依赖解析一旦完成,该组件将永远不会尝试,如果存在.M2下载相同的依赖,所有项目将涉及从.M2依赖直接

请告诉我有什么办法停止该解决方案或下载该缓存时已有的jar在.ivy2缓存中。

回答

1

可以SBT设置为脱机工作:

脱机时:= TRUE,远程快照将不会受分辨率,甚至明确要求更新进行更新。这应该有效地支持没有连接到远程存储库的工作。可重现的例子表明赞赏。显然,更新必须在离线前成功运行。

docs

报价如果你可以跳过更新阶段。形成SBT壳:

设定跳过更新:=真

如果你想只使用缓存的神器添加到您的build.sbt

updateOptions := updateOptions.value.withCachedResolution(true) 

我个人的偏好是到override default repos并添加我的本地maven回购(因此解决方案发生但快速)

有人已经去really far与此pr设置一个巨大的堆栈(有趣但没有建议)

+0

我试着给** offline:= true **在build.sbt中,问题没有解决。在编译项目时,它试图从外部回购下载。 –

+0

尝试使用交互模式,并从set shell中设置值> set offline:= true – Sammyrulez

+0

我也尝试过。我使用./sbt进入交互式shell,并将set设置为offline:= true。但不幸的是,它仍在试图解决已经存在的依赖关系。 [info]解决com.cloudera.cdh#cdh-root; 5.3.8 ... –