我在 Scala 2.12 (sbt 1.5.5) 上有 Scala Play 2.6 应用程序
"com.eed3si9n" % "sbt-assembly" % "1.2.0"
。该应用程序使用 cat 2.8.0,我添加了另一个带有 0.9.0 的库。这导致了如下所示的二进制不兼容问题。
[error] (app / update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.typelevel:cats-core_2.12:2.8.0 (early-semver) is selected over {0.9.0, 2.2.0}
[error] +- org.scala-sbt.temp:temp-resolve-4579dec96ae08171122c66ca210e0186a9f70b99:1.0 (depends on 2.8.0)
[error] +- org.typelevel:cats-free_2.12:2.2.0 () (depends on 2.2.0)
[error] +- org.typelevel:cats-laws_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats-jvm_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats-free_2.12:0.9.0 () (depends on 0.9.0)
[error]
[error] * org.typelevel:cats-kernel_2.12:2.8.0 (early-semver) is selected over {2.2.0, 0.9.0}
[error] +- org.typelevel:cats-core_2.12:2.8.0 () (depends on 2.8.0)
[error] +- org.typelevel:cats-laws_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats-kernel-laws_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats-core_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats_2.12:0.9.0 () (depends on 0.9.0)
[error] +- org.typelevel:cats-core_2.12:2.2.0 () (depends on 2.2.0)
我试过这个 ShadeRule 来解决,但似乎没有解决问题。 (省略了特定于工作的库)。我试过
.inProject
,.inAll
,都没有。
ThisBuild / assemblyShadeRules := Seq(
ShadeRule.rename("org.typelevel.**" -> "shadeTypelevel.@1")
.inLibrary(
"org.typelevel" % "cats-core_2.12" % "0.9.0",
"org.typelevel" % "cats-kernel_2.12" % "0.9.0",
"org.typelevel" % "cats-law_2.12" % "0.9.0",
"org.typelevel" % "cats_2.12" % "0.9.0",
"org.typelevel" % "cats-jvm_2.12" % "0.9.0",
"org.typelevel" % "cats-free_2.12" % "0.9.0",
"org.typelevel" % "cats-kernel-laws_2.12" % "0.9.0",
"org.typelevel" % "cats-macros_2.12" % "0.9.0",
).inProject
)
sbt 立即因提供的错误而失败,因此无法打印依赖树。对我的 ShadeRule 出了什么问题感到困惑。在 0.x.x 版本中,我可以链接
.inLibrary
调用,但是在 1.x.x 版本中,我只能调用 .inLibrary
一次?我尝试引用 sbt-assembly GitHub https://github.com/sbt/sbt-assembly#shading.