gpt4 book ai didi

Scala Jar 文件无法正常用于 Kafka Streams 应用程序

转载 作者:行者123 更新时间:2023-12-03 16:41:57 27 4
gpt4 key购买 nike

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

首先,我使用 IntelliJ IDEA 制作了一个 jar 文件。在运行 Jar 文件时,它给出了以下错误:

java.lang.ClassNotFoundException: Main ...



以下是我在 IntelliJ IDEA 中制作 Jar 文件的步骤:
  • 从文件菜单中选择项目结构。
  • 进入“工件”选项卡。
  • 单击 + 按钮。
  • 选择主类和META-INF目录位置
  • 添加了所有 Scala 库和依赖项(并确保包含 META-INF 目录)
  • 应用设置并构建工件。
  • 使用 Scala 命令运行 Jar。给出了上述错误。

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

  • 它制作了一个 Jar 文件。这一次,问题在于它没有随机选择一些 Kafka 库。有时,它会抛出,例如,未找到 KafkaStreams。然后我将尝试重建 jar,然后新 jar 会抛出 StreamsBuilder not found。我一直在尝试和总结,以下是我记得的一些错误:

    NoClassDefFoundException ..../KafkaStreams
    NoClassDefFoundException ..../StreamsBuilder etc.



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

    构建.sbt:
    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",
    )

    程序集.sbt:
    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)

    斯卡拉版本:2.12.7
    SBT 版本:1.6.3

    最佳答案

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

    关于Scala Jar 文件无法正常用于 Kafka Streams 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871892/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com