In meinem Projekt ich diese Pakete verwenden gezwungen:Verschiedene Versionen in transitive Abhängigkeiten in Gradle
com.sparkjava:spark-core:2.3
, diejetty-server:9.3.2.v20150730
org.apache.spark:spark-core_2.10:1.2.0
mit endet, die mit endetjetty-server:8.1.14.v20131031
Beachten Sie, dass com.sparkjava
und org.apache.spark
nichts miteinander zu tun haben. Sie heißen beide Funken komisch.
Das Problem hier ist, dass beide Anlegesteg Versionen nicht kompatibel sind, so dass, wenn ich jetty 8.X
die Systemabstürze zu erzwingen, wenn ich jetty 9.X
das System zwingen, stürzt wieder, bekomme ich java.lang.NoClassDefFoundError: org/eclipse/jetty/server/ServerConnector
in einem Fall und java.lang.NoClassDefFoundError: org/eclipse/jetty/server/bio/SocketConnector
in der anderen.
Was soll ich in einer solchen Situation tun?
Hinweis: Ich habe versucht, Jetty zu schattieren, aber der Dependency Manager löst nur einen (9.X standardmäßig, oder 8.X, wenn ich es erzwinge) und dann Schatten, so dass es wirklich nicht hilft.
Danke, sieht aus, als ob ich in ein bisschen Ärger dann bin. Ich werde sparkjava dann loswerden. – Marc
Nur für die Aufzeichnung. Ich habe den Code entfernt, der 'sparkjava' verwendet und die andere Netty-Version in build.gradle über das Schatten-Plugin erzwungen. – Marc