根据this question here上的答案,我已将SBT(0.11.0)配置为将GitHub项目作为依赖项引入。
它工作正常,但我似乎无法让SBT在更新时重新编译我的Git依赖项。换句话说:如果我对依赖项进行更新,请转到Git并重新加载项目的SBT并运行package
,然后SBT在编译项目时不会重新编译外部Git依赖项。
我尝试在我的Git依赖项中创建一个新分支(例如,forcenew
)并更新我的SBT项目配置中的分支以使用它:
lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#forcenew"))
但即使这样也不会强制刷新。我有点难过 - 我甚至无法找到SBT将Git项目编入其中的位置(它似乎不在~/.sbt/
或~/.ivy2/
中)...
任何帮助都非常感谢!
答案 0 :(得分:20)
来自:https://github.com/sbt/sbt/issues/335
这应该在0.12.0中修复,只需调用“sbt update”
已在0.12.0中修复,因此sbt update
已足够but got back in 13.0 - 目前,您必须手动从~/.sbt/staging/
删除依赖
答案 1 :(得分:9)
您可能希望清除~/.sbt/staging/
答案 2 :(得分:4)
您可以添加到build.sbt的快速黑客:
def removegit = Command.command("removegit"){state =>
val home = sys.env("HOME")
val k = ("rm -rf "+ home + "/.sbt/0.13/staging/").!
state
}
commands ++= Seq(removegit)
然后sbt removegit
将擦除该目录。这没有像检查提交那样聪明的事情,这将是一个很好的升级... repos存储在我的机器上的~/.sbt/0.13/staging/
,你可能需要调整它。
答案 3 :(得分:-1)
尝试从〜/ .ivy2 / cache /中删除要重新加载的特定项目,然后执行'sbt update'。