考虑以下(最小)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中构建失败了?
答案 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
来显示跟踪。