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

Play项目执行mvn clean install时遇java.lang.UnsupportedOperationException错误求助

解决Play项目执行mvn clean install时的Position.start错误

问题场景

执行mvn clean install构建Play项目时,抛出如下错误:

java.lang.UnsupportedOperationException: Position.start on class scala.reflect.internal.util.OffsetPosition
    at scala.reflect.internal.util.Position.start(Position.scala:114)
    at sbt.internals.parser.SbtParser.sbt$internals$parser$SbtParser$$convertStatement$1(SbtParser.scala:148)
    at sbt.internals.parser.SbtParser$$anonfun$4.apply(SbtParser.scala:153)
    at sbt.internals.parser.SbtParser$$anonfun$4.apply(SbtParser.scala:153)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
    at sbt.internals.parser.SbtParser.splitExpressions(SbtParser.scala:153)
    at sbt.internals.parser.SbtParser.<init>(SbtParser.scala:58)
    at sbt.EvaluateConfigurations$.splitExpressions(EvaluateConfigurations.scala:226)
    at sbt.EvaluateConfigurations$.parseConfiguration(EvaluateConfigurations.scala:69)
    at sbt.EvaluateConfigurations$.evaluateSbtFile(EvaluateConfigurations.scala:106)
    at sbt.Load$.sbt$Load$$loadSettingsFile$1(Load.scala:789)
...

当前使用sbt版本为0.13.18,~/.sbt/repositories配置如下:

[repositories]
  local
  sbt-releases-repo: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  sbt-plugins-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  maven-central: https://repo1.maven.org/maven2/

解决方案

这个错误本质是sbt 0.13.x与高版本Scala编译器的兼容性问题,OffsetPosition.start方法在部分Scala版本中被禁用,以下是可行的解决步骤:

  • 匹配Scala与sbt版本:sbt 0.13.18仅兼容Scala 2.10.x或2.11.x版本,禁止使用Scala 2.12及以上版本。检查项目build.sbt或pom.xml中的scala.version配置,确保版本匹配。

  • 清理sbt缓存:缓存损坏也可能导致依赖拉取异常,执行以下命令清理缓存后重新构建:

    rm -rf ~/.sbt/boot/
    rm -rf ~/.ivy2/cache/
    mvn clean install
    
  • 调整仓库配置(可选):如果依赖拉取缓慢或失败,可替换为国内镜像加速,修改~/.sbt/repositories:

    [repositories]
      local
      aliyun-maven: https://maven.aliyun.com/repository/public/
      sbt-releases-repo: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
      sbt-plugins-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
    
  • 升级sbt版本(推荐):sbt 0.13.x已停止维护,升级到1.x系列版本(如1.9.x)可彻底解决这类兼容性问题。修改项目project/build.properties文件:

    sbt.version=1.9.6
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:20:38