由于跨版本后缀冲突,从 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 失败的主要内容,如果未能解决你的问题,请参考以下文章
Scala在Ubuntu虚拟机中下载安装及其环境配置+helloworld输出。