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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-22 06:28:08  来源:igfitidea点击:

What is the reason for java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc upon executing "sbt test"?

scalasbt

提问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 作为目标。更改scalaVersion2.11.4解决它。

回答by R.G.Karthic Balaji

Perform below from project folder,

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

  1. sbt clean
  2. sbt test
  1. sbt 干净
  2. sbt 测试

It will work like a charm...

它会像魅力一样工作......