sbt 库依赖顺序依赖吗?

Are sbt library dependencies order dependent?

根据经验,build.sbt 中声明的库依赖项的顺序似乎很重要。这是真的?如果是这样,值得在文档的 sbt library management 部分中简要提及。

是的,列出的顺序是用于解析依赖项的顺序。如果您只是附加到默认值,则这包括默认值。因此,您应该将不太可能的候选人放在更有可能的候选人之后。在下面的示例中,默认解析器被选中,然后是 Sonatype 快照,然后依赖项仅在 .m2 目录中的本地机器上可用:

resolvers ++= Seq(
  Resolver.sonatypeRepo("snapshots"),
  "Local .m2 Repository" at s"file:${ Path.userHome.absolutePath }/.m2/repository"
)

这些年来默认值已经发生了变化。为确保您控制解析器,另一种不依赖默认值的写法是:

resolvers = Seq(
  allResolvers,
  Resolver.sonatypeRepo("snapshots"),
  "Local .m2 Repository" at s"file:${ Path.userHome.absolutePath }/.m2/repository"
)