SBT: опишите внешнюю зависимость относительно другой (переходной) зависимости? - PullRequest
1 голос
/ 26 марта 2020

Чтобы избежать баночного ада, я бы хотел относиться к зависимости относительно.

Например, когда я добавляю зависимость к "org.http4s" %% "https-circe" % "0.21.1":

cs resolve org.http4s:http4s-circe_2.12:0.21.1 | grep -i circe                                                                                ⎈ eks-cluster-eu-west-1-dev/master
io.circe:circe-core_2.12:0.13.0:default

Я хотел бы добавить зависимость к "circe-literal" в версии, которая автоматически разрешалась SBT посредник. В этом примере "0.13.0". Это возможно?

1 Ответ

1 голос
/ 26 марта 2020

С одной стороны, вы можете добавить circe-literal с помощью подстановочной версии, а при использовании диспетчера конфликтов latest-compatible получите версию, совместимую с circe-core. К сожалению, нельзя, не прибегая к плагину coursier, указывать диспетчеры конфликтов для указанного c артефакта.

Если все в порядке, с вами, однако, вы сможете указать это:

conflictManager := ConflictManager.latestCompatible
libraryDependencies += "io.circe" %% "circe-literal % "[0,)"

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

dependencyResolution := sbt.librarymanagement.ivy.IvyDependencyResolution(ivyConfiguration.value)

Используя это, я получил именно то, что вы хотели:

[info]  [SUCCESSFUL ] io.circe#circe-literal_2.12;0.13.0!circe-literal_2.12.jar (304ms)
...