2

我正在尝试按照本指南http://lamp.epfl.ch/files/content/sites/lamp/files/teaching/progfun/ScalacheckTutorial.html 中的说明在 Scala IDE 中使用 ScalaCheck。

但是,当我使用以下代码创建第一个文件 StringSpecification.scala 时:

package pp.scalacheck

import org.scalacheck._
import Prop.forAll
object StringSpecification extends Properties("String") {
    property("startsWith") = forAll { (x: String, y: String) =>
        (x + y).startsWith(x)
    }
}

我在 Scala IDE 中收到以下错误:

在类文件“CmdLineParser.class”中遇到对 scala.util.parsing 的错误符号引用。无法访问包 scala.util 中的术语解析。当前类路径可能缺少 scala.util.parsing 的定义,或者 CmdLineParser.class 可能已针对与当前类路径中找到的版本不兼容的版本进行编译。(注意:似乎缺少 scala-parser-combinators 模块;尝试添加对“org.scala-lang.modules”的依赖项:“scala-parser-combinators”。请参阅 http://docs.scala-lang。 org/overviews/core/scala-2.11.html了解更多信息。)

Scala 编译器中的错误:在类文件“CmdLineParser.class”中遇到对 scala.util.parsing.combinator 的错误符号引用。无法访问值 scala.util.parsing 中的术语组合器。当前类路径可能缺少 scala.util.parsing.combinator 的定义,或者 CmdLineParser.class 可能已针对与当前类路径中找到的版本不兼容的版本进行编译。(注意:似乎缺少 scala-parser-combinators 模块;尝试添加对“org.scala-lang.modules”的依赖项:“scala-parser-combinators”。请参阅 http://docs.scala-lang。 org/overviews/core/scala-2.11.html了解更多信息。)

SBT builder 在编译时崩溃。错误消息是“在类文件“CmdLineParser.class”中遇到的对 scala.util.parsing.combinator 的错误符号引用。无法访问值 scala.util.parsing 中的术语组合器。当前类路径可能缺少 scala.util.parsing.combinator 的定义,或者 CmdLineParser.class 可能已针对与当前类路径中找到的版本不兼容的版本进行编译。(注意:似乎缺少 scala-parser-combinators 模块;尝试添加对“org.scala-lang.modules”的依赖项:“scala-parser-combinators”。请参阅 http://docs.scala-lang。 org/overviews/core/scala-2.11.html了解更多信息。)'。检查错误日志以获取详细信息。

我正在使用最新稳定版本的 Scla IDE(用于 Eclipse)(3.0.4)、ScalaCheck(2.11-1.11.6)和 Scala(2.11.2),并且我在 Windows 上运行。

什么可能导致此错误?

4

1 回答 1

2

当我将此 jar 添加到项目中时,我能够构建示例文件:

http://search.maven.org/#artifactdetails%7Corg.scala-lang.modules%7Cscala-parser-combinators_2.11%7C1.0.2%7Cbundle

于 2014-11-17T12:25:56.107 回答