首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala Jar文件不适合Kafka Streams应用程序

Scala Jar文件不适合Kafka Streams应用程序
EN

Stack Overflow用户
提问于 2020-01-23 05:09:58
回答 1查看 184关注 0票数 0

我为一个在Scala中编码的Kafka应用程序创建了一个jar文件,它使用IntelliJ IDEA本身,然后使用SBT。以下是我一直面临的问题,到目前为止我还没有成功:

首先,我使用IntelliJ IDEA创建了一个jar文件。在运行Jar文件时,它会出现以下错误:

java.lang.ClassNotFoundException:主要..。

下面是我在IntelliJ IDEA中创建Jar文件所采取的步骤:

button.

  • Selected

  • 从文件菜单中选择项目结构。

  • 进入“工件”选项卡。

  • 单击+ included)

  • Applied、主类和元-INF目录location

  • Added所有Scala库和依赖项(并确保META dir是included)

  • Applied设置并构建工件。

  • 使用Scala命令运行Jar。给出了上述错误.

之后,我尝试使用SBT制作Jar文件。我在项目目录中创建了一个assembly.sbt文件,然后重新导入项目。之后,我执行了以下命令:

  • sbt清洁
  • sbt封装
  • sbt组装

它制作了一个Jar文件。这一次,问题是它没有随机挑选一些卡夫卡图书馆。例如,有时它会抛出没有找到的KafkaStreams。然后,我将尝试重建jar,然后新jar将抛出StreamsBuilder not。我一直在努力总结,以下是我记得的一些错误:

NoClassDefFoundException ./KafkaStreams

NoClassDefFoundException ./StreamsBuilder等。

这里“.”表示完整的包名/路径。

build.sbt:

代码语言:javascript
复制
name := "StreamsNew"

version := "0.1"

scalaVersion := "2.12.7"

mainClass := Some("src/main/scala/StreamsDemo/Main.scala")

libraryDependencies ++= Seq(
 //"org.slf4j" % "slf4j-simple" % "1.7.28",
  "org.apache.kafka" % "kafka-streams" % "2.3.0",
  "org.apache.kafka" %% "kafka-streams-scala" % "2.3.0",
)

assembly.sbt:

代码语言:javascript
复制
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10" )
resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

Scala版本: 2.12.7

SBT版本: 1.6.3

EN

回答 1

Stack Overflow用户

发布于 2020-01-23 09:22:31

您不需要使用sbt package,因为您需要一个胖jar (用于依赖项)。为此,只需执行sbt cleansbt assembly。更重要的是,主类路径应该只包含StreamsDemo.Main,而不是整个路径。现在,尝试运行通过程序集制作的罐子。另外,您不需要assembly.sbt中的解析器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59871892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档