Я получаю это исключение во время выполнения
scala -classpath target/scala-2.11/myapp.jar com.example.MyApp
java.lang.BootstrapMethodError: java.lang.NoSuchMethodError: com.typesafe.config.Config.getDuration(Ljava/lang/String;)Ljava/time/Duration;
at com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverExecutionProfile.getDuration(TypesafeDriverExecutionProfile.java:240)
at com.datastax.oss.driver.internal.core.context.DefaultNettyOptions.<init>(DefaultNettyOptions.java:101)
...
Caused by: java.lang.NoSuchMethodError: com.typesafe.config.Config.getDuration(Ljava/lang/String;)Ljava/time/Duration;
at java.lang.invoke.MethodHandleNatives.resolve(Native Method)
Насколько я понимаю, во время этого процесса ... assemblyMergeStrategy in assembly
, новая версия пакета была перезаписана старой версией, в которой нет getDuration
method
Я попытался добавить новую версию фляги, основанную на этом посте,
, как разрешить NoSuchMethodError в типах безопасных настроек?
Есть также пытался исключить старую версию и добавить новую версию на основе этого поста
Как исключить ведение журнала с использованием общего ресурса из проекта scala / sbt / slf4j?
Но ничего работает до сих пор. Вот мой build
файл
name := "myapp"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.kafka" %% "kafka-streams-scala" % "2.3.1" exclude("org.rocksdb","rocksdbjni")
, "log4j" % "log4j" % "1.2.17"
, "org.rocksdb" % "rocksdbjni" % "6.4.6"
, "com.github.scopt" %% "scopt" % "3.2.0"
, "com.datastax.oss" % "java-driver-core" % "4.2.0"
).map(_.exclude("com.typesafe", "config")) :+ "com.typesafe" % "config" % "1.4.0"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
Я что-то здесь упускаю?