To avoid jar hell, I'd like to refer to a dependency relatively.
For example, when I add a dependency to "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
I'd like to add a dependency to "circe-literal" in the version, which was automatically resolved by SBT's mediator. In this example "0.13.0". Is this possible?
On one hand, you could add
circe-literalwith a wildcard version, and using thelatest-compatibleconflict manager would get a version of it that is compatible withcirce-core. Sadly, one cannot, without resorting to the coursier plugin, specify conflict managers for a specific artifact.If that is ok, with you, however, you should be able to specify this:
You'll have to use the ivy resolver to get that working, though.
Using that, I got exactly what you wanted: