无法将 Cats 从 0.7.8 升级到 0.9.0
Cannot upgrade Cats from 0.7.8 to 0.9.0
我的项目使用的是 Cats 0.7.8 和 Scala 2.11.8。如果我通过 build.sbt 文件更新并将我的猫依赖项从
更改为
"org.typelevel" % "cats-core_2.11" % "0.7.8"
到
"org.typelevel" % "cats-core_2.11" % "0.9.0"
然后尝试做一个 sbt clean compile
我得到一个错误
[error] bad symbolic reference to cats.data.Xor encountered in class file 'Parser.class'.
[error] Cannot access type Xor in package cats.data. The current classpath may be
[error] missing a definition for cats.data.Xor, or Parser.class may have been compiled against a version that's
[error] incompatible with the one found on the current classpath.
[error] one error found
[error] (compile:compile) Compilation failed
问题是我不知道 Parser.class 编译器在谈论谁。我很确定我们自己的源代码库没有 Parser.class。我们的代码不使用 Cats 的旧 Xor class。 (尽管我们可以,因为我们还没有使用 Scala 2.12)。
可能您使用的其他一些库也依赖于 Cats。由于您通过添加自己的版本驱逐了它的 Cats 版本,因此当您让编译器使用较新版本时,该库正试图 link 对抗旧版本。
您可以尝试使用像 https://github.com/jrudolph/sbt-dependency-graph 这样的 SBT 插件来打印整个关系图,然后检查哪些库也依赖于 Cats。可能其中之一旁边会有单词 evicted
,这意味着它 link 与您提供的其他版本的 Cats 相冲突。
一旦找到该库(ori 库),请尝试将它们更新到 link 以对抗较新的 Cats 的较新版本。在没有看到其他依赖项的情况下,我只能告诉你这些。
我的项目使用的是 Cats 0.7.8 和 Scala 2.11.8。如果我通过 build.sbt 文件更新并将我的猫依赖项从
更改为"org.typelevel" % "cats-core_2.11" % "0.7.8"
到
"org.typelevel" % "cats-core_2.11" % "0.9.0"
然后尝试做一个 sbt clean compile
我得到一个错误
[error] bad symbolic reference to cats.data.Xor encountered in class file 'Parser.class'.
[error] Cannot access type Xor in package cats.data. The current classpath may be
[error] missing a definition for cats.data.Xor, or Parser.class may have been compiled against a version that's
[error] incompatible with the one found on the current classpath.
[error] one error found
[error] (compile:compile) Compilation failed
问题是我不知道 Parser.class 编译器在谈论谁。我很确定我们自己的源代码库没有 Parser.class。我们的代码不使用 Cats 的旧 Xor class。 (尽管我们可以,因为我们还没有使用 Scala 2.12)。
可能您使用的其他一些库也依赖于 Cats。由于您通过添加自己的版本驱逐了它的 Cats 版本,因此当您让编译器使用较新版本时,该库正试图 link 对抗旧版本。
您可以尝试使用像 https://github.com/jrudolph/sbt-dependency-graph 这样的 SBT 插件来打印整个关系图,然后检查哪些库也依赖于 Cats。可能其中之一旁边会有单词 evicted
,这意味着它 link 与您提供的其他版本的 Cats 相冲突。
一旦找到该库(ori 库),请尝试将它们更新到 link 以对抗较新的 Cats 的较新版本。在没有看到其他依赖项的情况下,我只能告诉你这些。