Maven依赖关系映射到存储库

时间:2013-03-27 14:13:21

标签: maven dependencies repository

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

一个依赖:

  • 依赖性
    • 的groupId:org.mystuff
    • 的artifactId:的MyStuff芯

我的问题:

  1. 我假设必须找到依赖项的groupId作为其中一个repo 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. 如果我完全偏离了轨道,那么在资源库中查找依赖关系的过程是什么?

  5. 正如您可能会说的那样,我正在查看现有的POM,并试图了解其工作原理。我已经查看了Maven站点上的文档,但到目前为止,我没有看到任何明确说明依赖关系如何映射到存储库的内容。

1 个答案:

答案 0 :(得分:2)

Q1。和Q2。你是对的。

更准确地说,默认情况下(即如果存储库布局未重新定义为非标准布局):工件将在<REPO_URL>/${groupId_with_dot_replaced_by_subdir}/${artifactId}/${version}/${artifactId}-${version}.${extension}

找到

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

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

Q4。 Here is a link博客文章解释maven存储库布局