scala - 错误:- java.lang.NoClassDefFoundError: scala/Product$class
问题描述
测试项目 Build.sbt
scalaVersion := "2.12.8"
crossScalaVersions := Seq("2.11.12", "2.12.8")
val scalaTestVersion = "3.0.5"
val rocksDBVersion = "5.17.2"
val kafkaVersion = "2.2.0"
lazy val deps = Seq(
// "javax.ws.rs" % "javax.ws.rs-api" % "2.1" jar(),
"org.apache.kafka" % "kafka-clients" % kafkaVersion,
"org.apache.kafka" % "kafka-clients" % kafkaVersion classifier "test",
"org.apache.kafka" % "kafka-streams" % kafkaVersion,
"org.apache.kafka" % "kafka-streams" % kafkaVersion classifier "test",
"org.apache.kafka" %% "kafka" % kafkaVersion,
"org.apache.kafka" % "kafka-streams-test-utils" % kafkaVersion,
"org.scalatest" %% "scalatest" % scalaTestVersion % "test",
"org.rocksdb" % "rocksdbjni" % rocksDBVersion % "test"
)
测试项目 plugins.sbt
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.8")
这是我的测试应用程序 sbt 配置文件,当我运行sbt package
它时,它会为我创建一个 jar 文件,然后我必须在我的其他项目中使用该 jar。
其他项目 sbt 文件
scalaVersion := "2.12.6"
object Dependencies {
val deps = Seq(
"org.json4s" %% "json4s-native" % "3.5.3",
"ch.qos.logback" % "logback-classic" % "1.2.3",
"cool.graph" % "cuid-java" % "0.1.1",
"org.apache.kafka" % "kafka-streams" % "2.2.0",
"com.typesafe" % "config" % "1.3.3",
"org.scalaz" %% "scalaz-core" % "7.2.20",
"org.apache.commons" % "commons-lang3" % "3.8.1",
//Test
"org.scalatest" %% "scalatest" % "3.0.4" % Test,
"org.mockito" % "mockito-all" % "1.10.19" % Test,
"com.abc" %% "kafka-streams-test-kit" % "2.2.0" % Test
)
}
其他项目 plugins.sbt
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.5.0")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.9.0")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.8")
因为我是 Scala 的新手,我不知道我做错了什么,因为当我将我的测试 scala jar 放入另一个项目时它会给我错误。
错误:-
java.lang.NoClassDefFoundError: scala/Product$class
[error] at com.shepherd.kafka.streams.test.kit.MockedStreams$Builder.<init>(MockedStreams.scala:17)
[error] at com.shepherd.kafka.streams.test.kit.MockedStreams$.apply(MockedStreams.scala:15)
[error] at com.shepherd.integration.WindowedThresholdSpec.$anonfun$new$4(WindowedThresholdSpec.scala:38)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
任何人都可以帮我解决这个问题,因为我是新手,我也看到了这个java.lang.NoClassDefFoundError: scala/Product$class但这对我没有帮助,所以我把我的问题放在这里。
尝试两种方式,例如将jar直接上传到代码中并通过S3拉取,但错误仍然存在。
resolvers += "Java.net Maven2 Repository" at "https://repo1.maven.org/maven2/"
resolvers += "S3" at "https://s3-eu-west-1.amazonaws.com/com.abc/" -> Test jar file
注意:-我在我的两个应用程序“2.12.6”中设置了相同的 scala 版本,但问题仍然存在。
解决方案
推荐阅读
- reactjs - 在 antd Table 中,能不能结合 Pagination 和 Footer somhow?
- ios - 如何打印轨迹数据(swift)
- php - 如何使用 .htaccess 文件从服务器和本地主机上的 URL 中删除 .php 扩展名?
- git - 如何使用 Git 确定(前导)空格的差异
- javascript - 无法管理拖放图片
- firebase - firebase auth 在微服务之间共享会话/令牌
- laravel - 尚未设置外观根
- javascript - 数据没有从 Angular 中的组件传递
- python - 如何修复 AttributeError:“NoneType”对象没有使用 smtplib 的属性“encode”
- javascript - 如何使用按钮更改嵌入源?