【问题标题】:What is the reason for java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc upon executing "sbt test"?java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc 执行“sbt test”的原因是什么?
【发布时间】:2014-09-25 05:24:13
【问题描述】:

当我尝试使用 sbt 0.13.5(和 Java 1.7.0_45)运行 sbt test 时遇到以下错误:

[错误] (test:executeTests) java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;

这是我使用的 build.sbt

version := "0.1"

scalaVersion := "2.10.3"

resolvers ++= Seq(
  "spray" at "http://repo.spray.io",
  "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
)

libraryDependencies ++= Seq(
  "io.spray" %% "spray-json" % "1.2.5",
  "com.typesafe.akka" %% "akka-actor" % "2.2.4",
  "com.typesafe.akka" %% "akka-slf4j" % "2.2.4",
  "com.typesafe.akka" %% "akka-testkit" % "2.2.4",
  "com.github.kxbmap" %% "configs" % "0.2.1",
  "junit" % "junit" % "4.8.1" % "test",
  "ch.qos.logback" % "logback-classic" % "1.0.13",
  "io.spray" % "spray-can" % "1.2.1",
  "io.spray" % "spray-routing" % "1.2.1",
  "io.spray" % "spray-testkit" % "1.2.1",
  "org.scalatest" % "scalatest_2.10" % "2.0" % "test",
  "com.typesafe.akka" %% "akka-testkit" % "2.1.4"% "test",
  "org.mockito" % "mockito-core" % "1.9.5",
  "org.specs2" %% "specs2" % "2.1.1" % "test"
)

我已经尝试删除 ~/.sbt~/.ivy2 目录,并且在每个目录之后都在执行 sbt clean

这是完整的堆栈跟踪:

sbt test
[info] Loading project definition from /Users/arumehta/cds_torii/project
[info] Set current project to cds_torii (in build file:/Users/arumehta/cds_torii/)
java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
    at org.scalatest.tools.FriendlyParamsTranslator$.<init>(FriendlyParamsTranslator.scala:23)
    at org.scalatest.tools.FriendlyParamsTranslator$.<clinit>(FriendlyParamsTranslator.scala)
    at org.scalatest.tools.Framework.runner(Framework.scala:1064)
    at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:515)
    at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:510)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.Map$Map2.foreach(Map.scala:130)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.Defaults$.createTestRunners(Defaults.scala:510)
    at sbt.Defaults$.allTestGroupsTask(Defaults.scala:525)
    at sbt.Defaults$$anonfun$testTasks$4.apply(Defaults.scala:392)
    at sbt.Defaults$$anonfun$testTasks$4.apply(Defaults.scala:392)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:35)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
[error] (test:executeTests) java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
[error] Total time: 1 s, completed Aug 1, 2014 3:49:24 PM

【问题讨论】:

  • 这是完整的堆栈跟踪吗?看起来你的一个工件中有不同版本的 scala,想,可以在你的 sn-p 中看到问题
  • 我添加了完整的堆栈跟踪。你的意思是什么文物?
  • 您的依赖项中有 akka-testkit 2.2.4 和 2.1.4。第一个具有 Scala 2.10.2 作为依赖项,第二个具有 2.10.1。这可能是一个原因。
  • 它对我有用。你能在项目内部tree 吗?您在根项目中有任何*.sbt 文件或project 文件夹中有任何*.scala 文件吗?

标签: scala sbt


【解决方案1】:

我遇到了同样的错误,并注意到 sbt 实际上正在编译为 scala 2.10 作为目标。将scalaVersion 更改为2.11.4 解决了它。

【讨论】:

  • build.sbt 文件中
  • 我已经在 2.11.8 并且仍然看到同样的错误。对此有何建议?
【解决方案2】:

从项目文件夹执行以下操作,

  1. sbt clean
  2. sbt 测试

它会像一个魅力......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2017-04-10
    相关资源
    最近更新 更多