1

为了避免 jar hell,我想相对地引用一个依赖项。

例如,当我将依赖项添加到"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"中。这可能吗?

4

1 回答 1

1

一方面,您可以添加circe-literal通配符版本,并且使用latest-compatible冲突管理器将获得与circe-core. 遗憾的是,如果不借助 coursier 插件,就无法为特定工件指定冲突管理器。

但是,如果没问题,您应该可以指定:

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

不过,您必须使用 ivy 解析器才能使其正常工作。

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

使用它,我得到了你想要的:

[info]  [SUCCESSFUL ] io.circe#circe-literal_2.12;0.13.0!circe-literal_2.12.jar (304ms)
于 2020-03-26T19:47:51.047 回答