【发布时间】:2020-01-27 04:03:02
【问题描述】:
我有一个 java & scala 项目,我正在为其更新 jars。
我换掉了akka-camel_2.11.jar 并将其替换为 jar akka-camel_2.13-2.5.25.jar,现在我在尝试在 Intellij 中构建时看到标题中显示的错误。
scala signature 是什么? package.class 是什么?
我如何编辑这些以便我的项目可以使用这个更新的 jar 构建?
【问题讨论】:
-
您不应该更新您不了解其技术的项目的依赖项版本。因为 Scala 不保证它们的主要版本之间的二进制兼容性,所以 Scala 库必须为他们想要支持的每个 Scala 主要版本重新编译和重新发布,并且 Scala 版本被添加到 jar 的名称中,因此
akka-camel_2.11意味着编译该依赖项的 Scala 版本是 Scala2.11,当您将其更改为akka-camel_2.13时,您会破坏二进制兼容性,即scala signature。 -
此外,将 Scala 版本手动放入依赖项是一种不好的做法。如果项目使用 SBT 你应该在声明依赖时使用
%%,所以它使用正确的。如果您使用的是 Maven 或 Gradle,则应始终引用包含正确版本的变量。
标签: scala intellij-idea