【发布时间】:2017-09-07 16:19:23
【问题描述】:
我正在尝试更多地了解 maven。 maven如何下载应用程序主要依赖的依赖?例如假设我的应用程序具有这样的主要依赖项:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.0</version>
<scope>provided</scope>
</dependency>
现在,当 maven 下载这个 jar 时,它也会下载这个 jar 的依赖项。例如,请看下面的屏幕截图:
可以看出,maven 不仅下载了 hadoop-hdfs-2.7.0.jar,还下载了它的所有依赖项。
现在,我的问题是 maven 如何知道“顶级”依赖项的依赖项是什么,即在这种情况下,“顶级”依赖项是 hadoop-hdfs,所以它必须下载的所有 jar这个?
我在 hadoop-hdfs 的 .m2/respository 中也看到了这一点:
我打开了.pom文件,内容是(部分):
<project>
....
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.0</version>
<description>Apache Hadoop HDFS</description>
<name>Apache Hadoop HDFS</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
<scope>provided</scope>
</dependency>
<dependencies>
...
</project>
这是什么 hadoop-hdfs-2.7.0.pom ?此文件是否向 maven 提供信息,hadoop-hdfs-2.7.0.jar 需要下载哪些依赖项?
谁能帮我清除这些东西?
【问题讨论】: