如何清除sbt缓存?

Joh*_*ohn 7 scala sbt

我正在使用sbt 1.3.9并且需要更新一些已更改其代码但版本保持不变的库。当我尝试运行sbt update命令时,没有任何反应,库未下载。我的sbt.build文件如下所示:

name := """project name"""
organization := "com.example"

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)
lazy val usr = sys.env("MVN_USER")

scalaVersion := "2.13.1"
javacOptions ++= Seq("-source", "11", "-target", "11")
resolvers ++= Seq(
  "Jfrog Artifacts".at("https://artifactory.jfrog.com/")
)
credentials += Credentials(
  ...
)
updateOptions := updateOptions.value.withCachedResolution(false)
updateOptions := updateOptions.value.withLatestSnapshots(false)
libraryDependencies ++= Seq(
  guice,
  javaWs,
  ehcache,
  "com.google.api-client" % "google-api-client" % "1.30.7",
  "org.apache.commons" % "commons-lang3" % "3.9",
  "redis.clients" % "jedis" % "3.2.0"
)
Run Code Online (Sandbox Code Playgroud)

如何清除 sbt 缓存?

mik*_*ike 17

您只需删除该v1文件夹即可。

默认缓存位置取决于平台:

  • 在 Linux 上,~/.cache/coursier/v1。这也适用于基于 Linux 的 CI 环境和 FreeBSD。
  • 在 OS X 上,〜/Library/Caches/Coursier/v1。
  • 在 Windows 上,%LOCALAPPDATA%\Coursier\Cache\v1,对于用户 Alex,通常对应于 C:\Users\Alex\AppData\Local\Coursier\Cache\v1。


Mat*_*zok 1

我假设您正在本地开发一些东西并正在做publishLocal- 普通存储库不会让您覆盖已发布的依赖项,并且快照不会被缓存(sbt 检查每次需要构建某项时是否出现较新的内容)。

在这种情况下,开始使用将来的快照版本和/或转到~/.ivy2/your.organisation/library_scalaVersion并删除带有“坏”版本的整个目录。如果库是由 Maven 获取的(使用 sbt,现在不太可能),那么它的想法是相同的,但是使用~/.m2.