在 X 中找不到新的 sbt "feature" 配置/未解析的(传递的)依赖项

New sbt "feature" configuration not found in X / unresolved (transitive) dependencies

sbt 中的一个相当新的 "feature",可能是 0.13.7 或 0.13.8,是一个非常烦人的行为,即不再发现传递依赖项。

例如。我有一个项目 A 依赖于库 B 版本 1.25.1,依赖于库 C 版本 1.13.1。 A中只定义了库依赖B,自然是因为我不想定义整棵几十个子库的树。好的,这构建。

现在我将 A 中的依赖项更新为库 B 版本 1.25.2,而库 B 又依赖于库 C 版本 1.13.2。现在 sbt 抱怨相当无用的消息 "configuration not found in library-C;1.13.2: 'master'. It was required from library-B;1.25.2 compile",然后是 "unresolved dependency" 异常。 Sbt 甚至懒得从 Maven Central 下载库 C 版本 1.13.2,或者实际上发现它已经在本地发布了。 "solve" 唯一的方法是将库 C 版本 1.13.2 的依赖项添加到项目 A,这正是我不想做的。

这是一个打印输出的例子:

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: de.sciss#scalacolliderugens-core_2.11;1.13.2: configuration not found in de.sciss#scalacolliderugens-core_2.11;1.13.2: 'master'. It was required from de.sciss#scalacolliderswing-core_2.11;1.25.2 compile
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Unresolved dependencies path:
[warn]      de.sciss:scalacolliderugens-core_2.11:1.13.2
[warn]        +- de.sciss:scalacolliderugens-plugins_2.11:1.13.2
[warn]        +- de.sciss:scalacolliderswing-core_2.11:1.25.2 (/home/hhrutz/Documents/devel/SoundProcesses/build.sbt#L167)
[warn]        +- de.sciss:soundprocesses-compiler_2.11:2.20.0-SNAPSHOT

我想这是 sbt 中的一个烦人的错误,或者在未能解决我无法理解的传递依赖项背后是否有更深层次的原因?

问题甚至在我明确添加库 C 一段时间后又出现了。通常,最终解决方案是这样的:

$ rm -r ~/.ivy2/cache/
$ rm -r ~/.ivy2/local/

然后再上网下载