【发布时间】:2014-06-03 03:03:13
【问题描述】:
我最近决定安装 Scala IDE 3.0.3(它基本上是带有 scala 插件的 Eclipse Kepler)。我有最新的规范 (specs2_2.10-23.11)、scalaz (2.10-7.0.4)、集合 (scalaj-collection_2.10-1.5) 和 scala 库 [2.10.4]
我尝试使用“Scala JUnit Test”在 scala 中运行我的测试,但我得到了这个错误
java.lang.NoClassDefFoundError: scalaz/concurrent/Strategy$ at org.specs2.reporter.DefaultExecutionStrategy$$anonfun$execute$1$$anonfun$2.apply(ExecutionStrategy.scala:43) 在 org.specs2.reporter.DefaultExecutionStrategy$$anonfun$execute$1$$anonfun$2.apply(ExecutionStrategy.scala:41) 在 scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111) 在 scala.collection.immutable.List.foldLeft(List.scala:84) 在 org.specs2.reporter.DefaultExecutionStrategy$$anonfun$execute$1.apply(ExecutionStrategy.scala:41) 在 org.specs2.reporter.DefaultExecutionStrategy$$anonfun$execute$1.apply(ExecutionStrategy.scala:38) 在 scalaz.syntax.IdOps$class.$bar$greater(IdOps.scala:15) 在 scalaz.syntax.ToIdOps$$anon$1.$bar$greater(IdOps.scala:78) 在 org.specs2.reporter.JUnitReporter$class.report(JUnitReporter.scala:44) 在 org.specs2.runner.JUnitRunner$$anon$4.report(JUnitRunner.scala:43) 在 org.specs2.runner.JUnitRunner.run(JUnitRunner.scala:50) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
引起:java.lang.ClassNotFoundException: scalaz.concurrent.Strategy$ at java.net.URLClassLoader$1.run(未知 源) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(Unknown Source) 在 java.lang.ClassLoader.loadClass(Unknown Source) 在 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 17 更多
是什么原因造成的?我可能错过了一些东西,但我找不到什么。
我的测试在 gradle 上运行得很好。
【问题讨论】:
-
您是否使用了
eclipsegradle 插件来生成您的项目?如果是这样,添加spec2是否发生在最初生成项目之后?您是否在项目的Reference Libraries部分看到了这些 jar? -
我没有使用 gradle 插件,所以这不是重点,我在本节中看到了那些 jar:/
-
您是否还在
User Entries部分下的测试运行配置类路径选项卡下看到了那些jar? -
一般来说,当我遇到 Eclipse 的类路径问题时,要么是我没有我认为我有的 jar,要么是我有太多的错误顺序。既然你有罐子,也许是后者?否则,我建议设计一个最小的项目来复制错误并将其链接到此处。
-
我找到了解决方案。我错过了 scalaz-concurrent,不知何故不在 scalaz-core 中。