You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Apache PredictionIO推荐模板失败,遇依赖冲突与缺失问题

解决PredictionIO推荐模板构建中的Scala依赖冲突问题

看起来你在构建PredictionIO推荐模板时遇到了典型的Scala版本依赖冲突问题,我来帮你拆解原因并给出具体的修复方案:

问题1:Scala 2.10.1下的Shapeless版本冲突

当你使用scalaVersion := "2.10.1"时,出现com.chuusai:shapeless的_2.10和_2.10.4后缀冲突,核心原因是:

  • PredictionIO 0.12.0-incubating本身依赖的Shapeless是针对Scala 2.10系列构建的(后缀_2.10)
  • Spark 2.1.1依赖的Shapeless则是针对Scala 2.10.4这个具体小版本构建的(后缀_2.10.4)
  • Scala小版本的差异会导致Maven仓库中依赖的artifact名称后缀不一致,进而引发冲突

修复方案:

  1. 先将Scala版本从2.10.1升级到2.10.4(这是Spark 2.1.1官方推荐的Scala 2.10系列版本,和PredictionIO 0.12.0兼容性更好),修改build.sbt:
    scalaVersion := "2.10.4"
    
  2. 添加依赖强制规则,统一Shapeless的版本,彻底避免冲突:
    dependencyOverrides += "com.chuusai" %% "shapeless" % "2.3.1"
    
    这个版本是PredictionIO 0.12.0默认依赖的Shapeless版本,能同时兼容Spark 2.1.1和PredictionIO核心库。

问题2:切换到Scala 2.11.18后找不到依赖

出现org.scala-lang#scala-library等依赖无法找到的问题,核心原因是:
PredictionIO 0.12.0-incubating官方只支持Scala 2.10.x版本,其发布的所有核心依赖包都是基于Scala 2.10构建的,没有针对Scala 2.11的适配版本,所以当你切换到Scala 2.11后,SBT无法在Maven仓库中找到对应的依赖artifact。

修复方案:

放弃使用Scala 2.11,回到Scala 2.10.x系列(推荐2.10.4),按照上面问题1的方案配置即可。

验证步骤

完成配置修改后,执行以下命令清理并重新构建:

pio clean
pio build --verbose

这样应该就能解决你遇到的两个构建问题了。

内容的提问来源于stack exchange,提问作者gpd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:08:31