maven 会自动下载工件依赖项吗?

Posted

技术标签:

【中文标题】maven 会自动下载工件依赖项吗?【英文标题】:Does maven automatically download artifact dependencies? 【发布时间】:2014-04-09 19:51:43 【问题描述】:

我使用 Maven 已经有一段时间了,我对 Maven 存储库站点上显示的信息有疑问。我正在查看要粘贴到 spring-web-mvc 3.2.8.RELEASE 的 pom 中的标签,并注意到标题为“此工件依赖于”的表格,并看到下面列出的工件主机。

我的问题很简单:我是否应该在我的 pom 中包含该表中列出的所有依赖项?

【问题讨论】:

【参考方案1】:

要回答您的问题,您不需要包含工件依赖项部分中列出的所有依赖项。据我了解,当您在 pom 文件中包含依赖项时,maven 将自动下载任何需要的 jar。我之所以推断这一点,是因为除了我需要的 pom 之外,我个人不会添加任何工件的依赖项。

例如,如果我想要 spring-core,我会执行以下操作:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.8.RELEASE</version>
</dependency>

maven 会自动为我处理依赖关系。

一个很好的测试方法是在 eclipse 中打开一个新的 maven 项目并指定一个依赖项,例如,更新项目,然后签入 Maven 依赖项文件夹。

为了好玩,我对此进行了实验,确实如此,当您更新项目时,Maven 会下载任何必要的依赖项。在我的pom.xml 文件中仅放入上述依赖项后,我得到以下内容:

【讨论】:

【参考方案2】:

无需下载所有这些。 Maven 将处理 pom 文件中提到的指定依赖项的所有工件的依赖项。

【讨论】:

以上是关于maven 会自动下载工件依赖项吗?的主要内容,如果未能解决你的问题,请参考以下文章

maven中引入其他模块会下载他的依赖吗

如何防止 Maven 为我的仓库中已有的工件下载 maven-metadata.xml?

如何从工件注册表(GCP)下载 jar?

当它们包含我创建的工件时,如何指示 maven 自动添加依赖项 jar?

Maven 可以重新签署依赖项吗?

如何使用 maven 从 ivy 存储库下载工件