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
相关产品推荐
相关产品推荐

