SBT - 回归在0.13.9?

时间:2015-11-16 17:01:32

标签: sbt ivy

考虑以下(最小)build.sbt:

    libraryDependencies ++= Seq(
      ("org.apache.hadoop" % "hadoop-client" % "2.6.0" ),
      ("org.apache.hive" % "hive-jdbc" % "1.1.0" ) 
    )

在0.13.8及更低版本中,此构建工作,我的意思是更新和包成功完成命令。在0.13.9中,这些相同的命令失败,并出现以下错误:

  

java.lang.IllegalStateException:未加载数据时无法获取工件。 IvyNode = commons-codec#commons-codec; 1.6

我可以通过明确排除commons-codec来解决这个问题,但我很好奇在新版本的SBT中导致失败的原因。错误信息不是很有用;这是在SBT或0.13.9正在使用的Ivy版本中的问题,还是在早期版本的SBT中构建失败了?

1 个答案:

答案 0 :(得分:0)

(以下是基于一些谷歌搜索和一些反复试验,而不是基于真正的专业知识。为什么它不能逐出旧版本,我不知道)

将此添加到您的build.sbt:

dependencyOverrides += "commons-codec" % "commons-codec" % "1.6"

dependencyOverrides += "com.google.guava" % "guava" % "16.0.1"

问题就会消失。基于Eugene在https://github.com/sbt/sbt/issues/654#issuecomment-64241673的建议。

如果您想了解需要什么的详细信息,请在last *:update完成后输入update来显示跟踪。