【问题标题】:What means "package url -> 3.1.1" in the runtime classpath?运行时类路径中的“package url -> 3.1.1”是什么意思?
【发布时间】:2022-01-10 03:56:39
【问题描述】:

下面的类路径中的“org.apache.hadoop:hadoop-mapreduce-client-core:2.6.5 -> 3.1.1”是什么意思? Spark 2.4.7 会使用 3.1.1 版本的 hadoop-mapreduce-client-core?

$ gradlew dependencies --configuration runtimeClasspath

> Task :dependencies

runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.spark:spark-core_2.11:2.4.7
     +--- org.apache.hadoop:hadoop-client:2.6.5
     |    +--- org.apache.hadoop:hadoop-common:2.6.5
     |    |    +--- org.apache.hadoop:hadoop-annotations:2.6.5 -> 3.1.1
     |    |    +--- com.google.guava:guava:11.0.2 -> 16.0.1
     |    +--- org.apache.hadoop:hadoop-mapreduce-client-app:2.6.5
     |    |    +--- org.apache.hadoop:hadoop-mapreduce-client-common:2.6.5
     |    |    |    +--- org.apache.hadoop:hadoop-yarn-common:2.6.5 -> 3.1.1 (*)
     |    +--- org.apache.hadoop:hadoop-mapreduce-client-core:2.6.5 -> 3.1.1 (*)

(*) - dependencies omitted (listed previously)

【问题讨论】:

    标签: java apache-spark gradle


    【解决方案1】:

    答案是:Spark 2.4.7 将使用 3.1.1 版本的 hadoop-mapreduce-client-core

    “Gradle 通过选择依赖图中找到的最新版本来解决任何依赖版本冲突”

    https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html

    例如:

    https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11/2.4.7

    取决于:

    • org.apache.commons:commons-math3:3.4.1
    • org.apache.hadoop:hadoop-common:2.6.5

    org.apache.hadoop:hadoop-common:2.6.5 依赖于:

    • org.apache.commons:commons-math3:3.1.1

    结果,gradle 将对两个包都使用 org.apache.commons:commons-math3:3.4.1。

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 2021-08-10
      • 1970-01-01
      • 2022-09-28
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多