Maven 依赖关系映射到存储库

问题描述 投票:0回答:1

虽然我对 Ant 很有经验,但我还是 Maven 新手。我试图了解下载依赖项的过程。假设我定义了两个存储库:

还有一个依赖项:

  • 依赖性
    • groupId:org.mystuff
    • artifactId:mystuff-core

我的问题:

  1. 我假设依赖项的 groupId 必须作为存储库 URL 之一的子路径找到,例如,http://repo-one.com/repos/org/mystuff。是这样吗?

  2. 如果是这样,则将artifactId作为附加子路径来查找,例如,http://repo-one.com/repos/org/mystuff/mystuff-core。是这样吗?

  3. 如果以上两项都是“是”,那么如果同时存在 http://repo-one.com/repos/org/mystuff/mystuff-corehttp://repo-two.com 怎么办? /repos/org/mystuff/mystuff-core?列出的第一个存储库是否获胜?

  4. 如果我完全偏离轨道,查找存储库依赖项的过程是什么?

您可能会知道,我正在查看现有的 POM 并试图了解它是如何工作的。我已经查看了 Maven 站点上的文档,但到目前为止,我还没有看到任何明确说明依赖项如何映射到存储库的内容。

maven dependencies repository
1个回答
2
投票

Q1。和Q2。你是对的。

更准确地说,默认情况下(即,如果存储库布局未重新定义为非标准布局):该工件将在

<REPO_URL>/${groupId_with_dot_replaced_by_subdir}/${artifactId}/${version}/${artifactId}-${version}.${extension}

找到

Q3。是的,包含该工件的第一个存储库获胜。请注意

  • 如果该工件不是快照并且已经在您的本地存储库中,则不会再次下载。
  • 如果工件是快照并且在本地存储库中的存储时间比刷新策略指定的时间长:它将再次下载。

Q4。 这是解释 Maven 存储库布局的博客文章的链接

© www.soinside.com 2019 - 2024. All rights reserved.