gpt4 book ai didi

jar - sbt 程序集创建的程序集文件中缺少类

转载 作者:行者123 更新时间:2023-12-03 20:20:39 25 4
gpt4 key购买 nike

我有一个项目,它使用 sbt 0.13.6 和程序集 0.12.0 插件来创建 farJar。我的 build.sbt 是:

name := "test"

version := "0.0.1"

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(
("org.apache.kafka" % "kafka_2.10" % "0.8.0" % "provided").
exclude("javax.jms", "jms").
exclude("com.sun.jdmk", "jmxtools").
exclude("com.sun.jmx", "jmxri").
exclude("org.slf4j", "slf4j-simple")
)

当我运行 sbt assembly 时,我得到一个名为 target/scala-2.10/test-assembly-0.0.1.jar 的文件,但它缺少一些 kafka 类,包括我在运行时需要的类:
> diff <(jar -tf /home/rief/.ivy2/cache/org.apache.kafka/kafka_2.10/jars/kafka_2.10-0.8.0.jar) <(jar -tf target/scala-2.10/test-assembly-0.0.1.jar) | grep "^<"
...
kafka/consumer/ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$kafka$consumer$ZookeeperConsumerConnector$ZKRebalancerListener$$closeFetchersForQueues$1.class
...

这是正确的行为吗?如何在我的 fatJar 中包含 kafka

最佳答案

这就是预期的行为。 % "provided" 被跳过,因为它的目的是从 Apache Spark、Kafka 等容器中提供这些类。
如果您想要其中的所有内容,您可以执行以下操作:

fullClasspath in assembly := (fullClasspath in Compile).value

关于jar - sbt 程序集创建的程序集文件中缺少类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444512/

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