Ich benutze sbt Versammlung, um ein fettes Glas zu schaffen, das auf Funken laufen kann. Abhängigkeiten von grpc-netty
. Guava Version auf Funke ist älter als die von grpc-netty
erforderlich, und ich lief in diesen Fehler: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument. Ich konnte dies lösen, indem ich userClassPathFirst auf "spark" auf "true" setzte, aber zu anderen Fehlern führte.sbt Versammlung Schattierung, um Fettglas zu schaffen, um auf Funken zu laufen
Korrigieren Sie mich, wenn ich falsch liege, aber von dem, was ich verstehe, sollte ich UserClassPathFirst nicht auf True setzen müssen, wenn ich Schattierung richtig mache. Hier ist, wie ich jetzt schattiere:
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("com.google.guava.**" -> "[email protected]")
.inLibrary("com.google.guava" % "guava" % "20.0")
.inLibrary("io.grpc" % "grpc-netty" % "1.1.2")
)
libraryDependencies ++= Seq(
"org.scalaj" %% "scalaj-http" % "2.3.0",
"org.json4s" %% "json4s-native" % "3.2.11",
"org.json4s" %% "json4s-jackson" % "3.2.11",
"org.apache.spark" %% "spark-core" % "2.2.0" % "provided",
"org.apache.spark" % "spark-sql_2.11" % "2.2.0" % "provided",
"org.clapper" %% "argot" % "1.0.3",
"com.typesafe" % "config" % "1.3.1",
"com.databricks" %% "spark-csv" % "1.5.0",
"org.apache.spark" % "spark-mllib_2.11" % "2.2.0" % "provided",
"io.grpc" % "grpc-netty" % "1.1.2",
"com.google.guava" % "guava" % "20.0"
)
Was mache ich hier falsch und wie repariere ich es?
Danke Nikolay. Ihre Lösung hat wie ein Zauber funktioniert! –
@Kumar Bharath Prabhu Froh, dass es geholfen hat! –