java.lang.NoSuchMethodError:scala.Predef$.ArrowAssoc在执行时出现的原因是什么;sbt测试;?
当我尝试使用sbt 0.13.5(和Java 1.7.045)运行java.lang.NoSuchMethodError:scala.Predef$.ArrowAssoc在执行时出现的原因是什么;sbt测试;?,scala,sbt,Scala,Sbt,当我尝试使用sbt 0.13.5(和Java 1.7.045)运行sbt测试时,我遇到了以下错误: [错误](测试:executeTests)java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object 这是构建。sbt我使用: version := "0.1" scalaVersion := "2.10.3" resolvers ++= Seq( "spray" at
sbt测试时,我遇到了以下错误:
[错误](测试:executeTests)java.lang.NoSuchMethodError:
scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object
这是构建。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清理
这是完整的堆栈跟踪:
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
sbt测试
[信息]从/Users/arumehta/cds\u torii/project加载项目定义
[信息]将当前项目设置为cds_-torii(内置文件:/Users/arumehta/cds_-torii/)
java.lang.NoSuchMethodError:scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
位于org.scalatest.tools.FriendlyParamsTranslator$(FriendlyParamsTranslator.scala:23)
位于org.scalatest.tools.FriendlyParamsTranslator$(FriendlyParamsTranslator.scala)
位于org.scalatest.tools.Framework.runner(Framework.scala:1064)
在sbt.Defaults$$anonfun$createTestRunners$1.apply处(Defaults.scala:515)
在sbt.Defaults$$anonfun$createTestRunners$1.apply处(Defaults.scala:510)
位于scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
位于scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
位于scala.collection.immutable.Map$Map2.foreach(Map.scala:130)
位于scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
位于scala.collection.AbstractTraversable.map(Traversable.scala:105)
在sbt.Defaults$.createTestRunner处(Defaults.scala:510)
在sbt.Defaults$.allTestGroupsTask(Defaults.scala:525)
在sbt.Defaults$$anonfun$testTasks$4.apply处(Defaults.scala:392)
在sbt.Defaults$$anonfun$testTasks$4.apply处(Defaults.scala:392)
在scala.Function8$$anonfun$tupled$1.apply处(Function8.scala:35)
在scala.Function8$$anonfun$tupled$1.apply处(Function8.scala:34)
在scala.Function1$$anonfun$compose$1.apply处(Function1.scala:47)
在sbt.$tilde$morerar$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
在sbt.std.Transform$$anon$4.work(System.scala:64)
在sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
在sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
在sbt.ErrorHandling$.wideConvert时(ErrorHandling.scala:18)
在sbt.Execute.work(Execute.scala:244)
在sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
在sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
在sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
在sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:744)
[error](test:executeTests)java.lang.NoSuchMethodError:scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
[错误]总时间:1秒,已完成2014年8月1日下午3:49:24
我也有同样的错误,并注意到sbt实际上是编译成scala 2.10作为目标。将scalaVersion
更改为2.11.4
解决了此问题。从项目文件夹执行以下操作
sbt清洁
sbt试验
它将像一个符咒一样工作…这是完整的stacktrace吗?看起来您的一个工件中有不同版本的scala,我添加了完整的stacktrace。你的意思是什么工件?你的依赖项中有akka testkit 2.2.4和2.1.4。第一个是Scala 2.10.2作为依赖项,第二个是Scala 2.10.1。这可能是个原因,对我来说很有效。你能在项目内部tree
吗?您是否在根项目中有任何*.sbt
文件,或者在project
文件夹中有任何*.scala
文件?在build.sbt
文件中,我已经在2.11.8中,仍然看到相同的错误。有什么建议吗?