关于sbt compile的疑问:是否在项目外安装文件及清理方法
关于sbt缓存与Scala版本文件的问题解答
1. sbt compile是否会在项目目录外安装Scala jar包这类文件?
会的。sbt(包括你通过coursier安装的Scala生态工具)会将下载的Scala版本jar、依赖库、甚至sbt自身的版本文件,都存储在用户级别的全局缓存目录中,而非项目本地目录。这样设计是为了让多个项目共享这些资源,避免重复下载相同的文件。
2. 如何删除sbt compile安装的所有文件,以及对应的目录位置?
缓存目录位置
根据操作系统不同,缓存目录路径如下:
- Linux/macOS:
- Coursier管理的缓存:
~/.cache/coursier - 传统sbt的缓存(部分旧版sbt可能用到):
~/.ivy2、~/.sbt
- Coursier管理的缓存:
- Windows:
C:\Users\<你的用户名>\AppData\Local\Coursier\Cache
清理方法
直接删除上述缓存目录即可:
- Linux/macOS终端执行:
rm -rf ~/.cache/coursier ~/.ivy2 ~/.sbt - Windows:手动找到对应文件夹,直接删除即可。
清理完成后,重新执行sbt compile,sbt会重新下载当前项目所需的Scala版本、依赖库及sbt组件,你可以完整观察整个下载与构建过程。
注:
sbt clean仅清理项目根目录下的target文件夹(项目编译生成的临时文件),不会影响全局缓存中的文件。
内容的提问来源于stack exchange,提问作者Dhruv
相关产品推荐
相关产品推荐

