0

在我的 build.sbt 文件中,我声明我想使用库中的 18.9 版:

val finagleVersion = "18.9.0"
<zip>
lazy val commonDependencies = Seq(
  <zip>,
  "com.twitter" %% "finagle-core" % finagleVersion,

但是当我运行 sbt 时,这似乎被忽略了

scalacOptions ++= (compilerOptions :+ "-Ylog-classpath"),

它输出编译时使用的所有jar。在那里我看到,对于包括核心在内的每个 finagle 依赖项,都使用了 19.3 版本:

C:\Users\<me>\.coursier\cache\v1\https\<me>%40<company repo>\artifactory\Central-cache\com\twitter\finagle-core_2.12\19.3.0\finagle-core_2.12-19.3.0.jar

最新版本的“偏好”来自哪里?

4

1 回答 1

2

使用evicted并查看哪个库覆盖了您想要的版本后,您可以选择使用dependencyOverrides。例如:

dependencyOverrides += "com.twitter" %% "finagle-core" % "18.9.0"

你必须小心,因为依赖于 Finagle 的库也可能需要新版本,如果你使用旧版本会中断。这就是为什么你应该首先检查哪个库正在驱逐旧版本,并验证这样做是否可以。

同样重要的是,这是一个 livy-only 功能,因此覆盖不会出现在已发布的 pom.xml 中!

于 2020-05-03T06:43:08.510 回答