SBT总是下载包/scala库

SBT总是下载包/scala库,scala,sbt,Scala,Sbt,我最近在WindowsXPSP3机器上安装了SBT,以开始使用Scala。当我最初启动它时,它开始从远程位置抓取所有JAR——非常像Maven或任何其他依赖项管理工具 但是,每当我更改目录并启动sbt,它就会再次开始下载整个解决方案。是否有一种维护全局缓存的方法,使工件只下载一次,而不是每次我更改工作目录时都下载?如果在新目录中运行相同版本的sbt,它将首先在本地ivy2缓存中查找。它仍将检查所有资源,但如果它们已经存在,则将在本地获取它们 但是,如果您正在使用SBT extras,如果您更改为

我最近在WindowsXPSP3机器上安装了SBT,以开始使用Scala。当我最初启动它时,它开始从远程位置抓取所有JAR——非常像Maven或任何其他依赖项管理工具


但是,每当我更改目录并启动
sbt
,它就会再次开始下载整个解决方案。是否有一种维护全局缓存的方法,使工件只下载一次,而不是每次我更改工作目录时都下载?

如果在新目录中运行相同版本的sbt,它将首先在本地ivy2缓存中查找。它仍将检查所有资源,但如果它们已经存在,则将在本地获取它们

但是,如果您正在使用SBT extras,如果您更改为不同版本的SBT,它可能会重新下载,因为它会为每个版本创建缓存。无论如何,这就是我在Ubuntu上的经验


您可能已经体验到,某些类型的sbt插件,例如sbt idea,可能会下载其他资源,如源代码库和文档。

在我的例子中(Debian),每次运行
sbt
时,它都会从
Getting org.scala-sbt sbt 0.13.16
获取文件。我没有本地的
ivy2
catch。解决方案就是将
/root
中的
.ivy2
文件夹复制到用户主页
/home/username
,并授予用户访问权限

实际上,它确实缓存工件(为了确保这一点,您可以查看
$HOME/.ivy2/cache
)。它首先查看本地缓存,然后才从外部存储库下载工件。在您不希望sbt idea下载源代码和文档的情况下,您可以像
gen idea no classifiers
一样运行它,谢谢@om nom nom,我不知道!很酷的提示!这个答案间接地起了作用。我使用“sudo docker”命令来运行。我意识到,如果我将我的用户添加到docker组,它将自动缓存JAR。因此,我遵循了这里概述的步骤,