Я сделал jar-файл для приложения Kafka Streams, закодированный в Scala, используя как IntelliJ IDEA, так и SBT. Ниже приведены проблемы, с которыми я столкнулся, и до сих пор мне это не удалось:
Сначала я создал файл jar с помощью IntelliJ IDEA. После запуска файла Jar он выдал следующую ошибку:
java .lang.ClassNotFoundException: Main ...
Ниже приведены шаги, которые я предпринял, чтобы сделать файл Jar в IntelliJ IDEA:
- Выбранная структура проекта из меню файлов.
- Перешел на вкладку «Артефакты».
- Нажал на кнопку +.
- Выбран основной класс и расположение каталога META-INF
- Добавлены все библиотеки и зависимости Scala (и убедитесь, что каталог META-INF включен)
- Применил настройки и построил артефакт.
- Запустите Jar с помощью команды Scala. Дали вышеупомянутую ошибку.
После этого я попытался сделать файл Jar с помощью SBT. Я сделал файл assembly.sbt внутри каталога проекта, а затем снова импортировал проект. После этого я выполнил следующие команды:
- sbt clean
- sbt package
- sbt Assembly
Сделал файл Jar , На этот раз проблема заключалась в том, что некоторые библиотеки Кафки не выбирались случайным образом. Иногда, например, выкидывается, что KafkaStreams не найден. Затем я попытаюсь восстановить банку, и новая банка будет выбрасывать StreamsBuilder не найден. Я продолжал пытаться и подвести итог, вот некоторые из ошибок, которые я помню:
NoClassDefFoundException .... / KafkaStreams
NoClassDefFoundException .... / StreamsBuilder et c.
Здесь '...' означает полное имя пакета / путь.
build.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",
)
assembly.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)
Scala версия: 2.12.7
SBT версия: 1.6.3