У меня есть проект Spark в Scala, в котором я пытаюсь использовать зависимость google-cloud-storage
. Ниже приведены зависимости, добавленные в build.sbt
val sparkVersion = "2.2.0"
"org.apache.spark" %% "spark-core" % sparkVersion % "provided",
"org.apache.spark" %% "spark-sql" % sparkVersion % "provided",
"com.google.cloud" % "google-cloud-storage" % "1.55.0",
"com.typesafe" % "config" % "1.3.1"
Теперь, когда я собираю банку и запускаю ее, я получаю следующее исключение.
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
При поиске в Google я обнаружил, что это вызвано несколькими версиями Guava
на моем пути к классам.
В попытке решить проблему я исключил Guava
из google-cloud-storage
зависимости.
"com.google.cloud" % "google-cloud-storage" % "1.55.0" exclude("com.google.guava", "guava"),
Но тогда я получил следующую ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/cloud/storage/StorageOptions
Эта ошибка означает, что теперь в classpath не было Guava
банок.
У меня вопрос, как это возможно до исключения гуавы? Я получал ошибку из-за нескольких версий в classpath, почему я не получаю ошибку, когда java guars найден, когда я исключаю одну ее версию.
Как устранить эту ошибку.