java.lang.NoClassDefFoundError: scala/Product$class
java.lang.NoClassDefFoundError: scala/Product$class
我是 scala 的新手,我正在尝试一些示例代码进行测试。但是,当我 运行 测试代码时,我遇到了一些问题。当我 运行 测试时,出现错误
[trace] Stack trace suppressed: run last test:executeTests for the full output.
[error] (test:executeTests) java.lang.NoClassDefFoundError: scala/Product$class
[error] Total time: 3 s, completed Feb 27, 2017 6:57:15 PM
我的代码如下
FilterChecks.scala
class filterChecks extends FlatSpec {
"Filter checker passed a filename which is present in directory" should "return file name" in {
val matchingFileName = new FileObject("match")
val listOfFiles = List(new FileObject("random"), matchingFileName)
val matchedFiles = new FilterChecker("match").findMatchedFiles(listOfFiles)
assert(matchedFiles == List(matchingFileName))
}
}
FilterCheckerClass
class FilterChecker(filter : String) {
def matches(content : String) = content.contains(filter);
def findMatchedFiles(fileObjects : List[FileObject]) = {
for(fileObject <- fileObjects if(matches(fileObject.name)))
yield fileObject
}
}
文件对象
class FileObject(val name: String) {
}
构建文件如下:
name := "testScalaProject"
version := "1.0"
scalaVersion := "2.12.1"
// https://mvnrepository.com/artifact/org.scala-js/scalajs-test-interface_2.12
libraryDependencies ++= Seq("org.scala-js" % "scalajs-test-interface_2.12" % "0.6.14",
"org.scalatest" % "scalatest_2.11" % "2.2.5",
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % "2.12.1")
有人可以帮我找出问题所在吗。提前致谢
您的 sbt 构建文件不正确。您的 scala 版本是 2.12.x 但您使用的是在 scala 版本 2.11 中编译的库。使用如下所示的 sbt 设置
注意:我更改了 scalatest 的版本,因为 2.x 版本不再支持 2.12 版的 scala
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"org.scala-js" %% "scalajs-test-interface" % "0.6.14",
"org.scalatest" %% "scalatest" % "3.0.1", //version changed as these the only versions supported by 2.12
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % scalaVersion.value
)
记得在你的 sbt 控制台中执行 reload
、clean
和 compile
以开始清理编译
专门将 scala-reflect 添加到您的 pom 或相应地更改 sbt:
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>${scala.version}</version>
</dependency>
我是 scala 的新手,我正在尝试一些示例代码进行测试。但是,当我 运行 测试代码时,我遇到了一些问题。当我 运行 测试时,出现错误
[trace] Stack trace suppressed: run last test:executeTests for the full output.
[error] (test:executeTests) java.lang.NoClassDefFoundError: scala/Product$class
[error] Total time: 3 s, completed Feb 27, 2017 6:57:15 PM
我的代码如下
FilterChecks.scala
class filterChecks extends FlatSpec {
"Filter checker passed a filename which is present in directory" should "return file name" in {
val matchingFileName = new FileObject("match")
val listOfFiles = List(new FileObject("random"), matchingFileName)
val matchedFiles = new FilterChecker("match").findMatchedFiles(listOfFiles)
assert(matchedFiles == List(matchingFileName))
}
}
FilterCheckerClass
class FilterChecker(filter : String) {
def matches(content : String) = content.contains(filter);
def findMatchedFiles(fileObjects : List[FileObject]) = {
for(fileObject <- fileObjects if(matches(fileObject.name)))
yield fileObject
}
}
文件对象
class FileObject(val name: String) {
}
构建文件如下:
name := "testScalaProject"
version := "1.0"
scalaVersion := "2.12.1"
// https://mvnrepository.com/artifact/org.scala-js/scalajs-test-interface_2.12
libraryDependencies ++= Seq("org.scala-js" % "scalajs-test-interface_2.12" % "0.6.14",
"org.scalatest" % "scalatest_2.11" % "2.2.5",
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % "2.12.1")
有人可以帮我找出问题所在吗。提前致谢
您的 sbt 构建文件不正确。您的 scala 版本是 2.12.x 但您使用的是在 scala 版本 2.11 中编译的库。使用如下所示的 sbt 设置
注意:我更改了 scalatest 的版本,因为 2.x 版本不再支持 2.12 版的 scala
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"org.scala-js" %% "scalajs-test-interface" % "0.6.14",
"org.scalatest" %% "scalatest" % "3.0.1", //version changed as these the only versions supported by 2.12
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % scalaVersion.value
)
记得在你的 sbt 控制台中执行 reload
、clean
和 compile
以开始清理编译
专门将 scala-reflect 添加到您的 pom 或相应地更改 sbt:
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>${scala.version}</version>
</dependency>