sbt зависимости игнорируя версию - PullRequest
0 голосов
/ 01 мая 2020

В моих файлах 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"),

, который выводит все банки, используемые во время компиляции. И там я вижу, что для каждой зависимости 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

Откуда это «предпочтение» для последних версий?

1 Ответ

1 голос
/ 03 мая 2020

После использования evicted и просмотра, какая библиотека переопределяет нужную вам версию, вы можете выбрать dependencyOverrides . Например:

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

Вы должны быть осторожны, поскольку библиотека, которая зависит от Finagle, также может потребовать более новую версию и сломаться, если вы используете более старую версию. Вот почему вы должны действительно сначала проверить, какая библиотека высвобождает старую версию, и проверить, если это нормально, сделать это.

Также важно, что это функция только для livy, поэтому переопределение не будет присутствовать в опубликованный пом. xml!

...