java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc 在执行“sbt test”时的原因是什么?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25089852/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What is the reason for java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc upon executing "sbt test"?
提问by user1077071
I have been running into the following error when I try to run sbt testwith sbt 0.13.5 (and Java 1.7.0_45):
当我尝试sbt test使用 sbt 0.13.5(和 Java 1.7.0_45)运行时,我遇到了以下错误:
[error] (test:executeTests) java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
[错误] (test:executeTests) java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
This is build.sbtI use:
这是我使用的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"
)
I have tried removing ~/.sbtand ~/.ivy2directories, and was doing sbt cleanafter each.
我曾尝试删除~/.sbt和~/.ivy2目录,并且sbt clean在每个目录之后都在做。
This is the full stack trace:
这是完整的堆栈跟踪:
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.apply(Defaults.scala:515)
at sbt.Defaults$$anonfun$createTestRunners.apply(Defaults.scala:510)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map.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.apply(Defaults.scala:392)
at sbt.Defaults$$anonfun$testTasks.apply(Defaults.scala:392)
at scala.Function8$$anonfun$tupled.apply(Function8.scala:35)
at scala.Function8$$anonfun$tupled.apply(Function8.scala:34)
at scala.Function1$$anonfun$compose.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219.apply(TypeFunctions.scala:42)
at sbt.std.Transform$$anon.work(System.scala:64)
at sbt.Execute$$anonfun$submit$$anonfun$apply.apply(Execute.scala:237)
at sbt.Execute$$anonfun$submit$$anonfun$apply.apply(Execute.scala:237)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
at sbt.Execute.work(Execute.scala:244)
at sbt.Execute$$anonfun$submit.apply(Execute.scala:237)
at sbt.Execute$$anonfun$submit.apply(Execute.scala:237)
at sbt.ConcurrentRestrictions$$anon$$anonfun.apply(ConcurrentRestrictions.scala:160)
at sbt.CompletionService$$anon.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
回答by Renald
I had the same error and noticed that sbt was actually compiling to scala 2.10 as a target. Changing scalaVersionto 2.11.4resolved it.
我有同样的错误,并注意到 sbt 实际上正在编译为 Scala 2.10 作为目标。更改scalaVersion以2.11.4解决它。
回答by R.G.Karthic Balaji
Perform below from project folder,
从项目文件夹执行以下操作,
- sbt clean
- sbt test
- sbt 干净
- sbt 测试
It will work like a charm...
它会像魅力一样工作......

