sbt锁定SNAPSHOT依赖

时间:2016-05-11 14:36:28

标签: scala sbt

我使用sbt-lock插件并想下载最新的快照,包括-SNAPSHOT版本。当我在build.sbt中写道时

libraryDependencies += "org.consensusresearch" %% "scorex-basics" % "1.2.+"

并运行sbt relock它只找到版本1.2.6,而1.2.7-SNAPSHOT版本可用。如何设置sbt以加载1.2.7-SNAPSHOT版本?

1 个答案:

答案 0 :(得分:0)

这是一个众所周知的问题,很多人都在example挣扎。

我发现唯一能够持续工作的解决方法(即尝试干净,cleanAll,更新等之后再没有运气)是使用build.sbt中的自定义任务定位并删除Ivy缓存中的依赖项,然后进行重建

lazy val nukeIvy = taskKey[Unit]("Execute rm -rf ~/ivy2/cache script")
nukeIvy := {
  val s: TaskStreams = streams.value
  val shell: Seq[String] =
    if (sys.props("os.name").contains("Windows")) Seq("cmd", "/c")
    else Seq("bash", "-c")
  val removeIvy: Seq[String]          = shell :+ "rm -rf ~/.ivy2/cache/com.explori"
  val removeCommonCodecs: Seq[String] = shell :+ "rm -rf ~/.ivy2/cache/commons-codec"
  s.log.info("nuking ivy cache...")
  if ((removeIvy !) == 0 && (removeCommonCodecs !) == 0) {
    s.log.success("remove com.explori from ivy cache successful!")
  } else {
    throw new IllegalStateException("cleanIvy failed!")
  }
}