由于跨版本后缀冲突,从 Scala 2.11.8 升级到 2.12.10 构建在 sbt 失败

Posted

技术标签:

【中文标题】由于跨版本后缀冲突,从 Scala 2.11.8 升级到 2.12.10 构建在 sbt 失败【英文标题】:upgrade from Scala 2.11.8 to 2.12.10 build fails at sbt due to conflicting cross-version suffixes 【发布时间】:2021-12-24 08:11:39 【问题描述】:

我正在尝试将我的 Scala 版本从 2.11.8 升级到 2.12.10。我在我的 sbt 文件中进行了以下更改。

"org.apache.spark" %% "spark-core" % "2.4.7"  % "provided",

"org.apache.spark" %% "spark-sql" % "2.4.7"   % "provided",

"com.holdenkarau" %% "spark-testing-base" % "3.1.2_1.1.0" % "test"

当我构建 sbt 文件时,出现以下错误

[error] Modules were resolved with conflicting cross-version suffixes in ProjectRef(uri("file:/Users/user/IdeaProjects/project/"), "root"):
[error]    io.reactivex:rxscala _2.12, _2.11

尝试了以下可能的方法。但没有运气。

    ("io.reactivex" % "rxscala_2.12" % "0.27.0").force().exclude("io.reactivex","rxscala_2.11")

2.从文件->项目结构->全局库中删除了 Scala verion=2.11.8。

任何帮助都会非常有用。

【问题讨论】:

你可能想试试sbt dependencyTree 看看不需要的依赖来自哪里(如果不是你自己设置的)。 同时分享你的整个 SBT 文件会更容易;) 【参考方案1】:

如果您可以发布整个 build.sbt 文件以便可以复制它,那将是最好的,但作为起点,依赖关系 spark-testing-base 指向错误的 Spark 版本。来自documentation:

所以你包括 com.holdenkarau.spark-testing-base [spark_version]_1.0.0 并扩展

根据您提供的信息,您应该使用:

"com.holdenkarau" %% "spark-testing-base" % "2.4.7_1.1.0" % "test"

【讨论】:

以上是关于由于跨版本后缀冲突,从 Scala 2.11.8 升级到 2.12.10 构建在 sbt 失败的主要内容,如果未能解决你的问题,请参考以下文章

知识积累SBT+Scala+MySQL的Demo

Scala在Ubuntu虚拟机中下载安装及其环境配置+helloworld输出。

使用 jdbc 从 Spark 2.3.1 Scala 2.11.8 连接到 Vertica

scala下载教程

Spark安装

Sbt 0.13 插件依赖和 scala-reflect.jar 版本冲突