分发管理与存储库下的存储库标签?

我在父元素 distributionManagementrepositories下面看到了 repository标记。有什么区别吗?

<distributionManagement>
<repository>
<id>...</id>
<name>...</name>
<url>...</url>
</repository>
</distributionManagement>


<repositories>
<repository>
<id>...</id>
<name>...</name>
<layout>default</layout>
<url>...</url>
</repository>
</repositories>

我所理解的 distributionManagement元素下的 repository元素指定了在部署时它将部署工件的位置。它只有在 mvn deploy(部署时间)而不是在 mvn install(构建时间)时才会出现。对吧?

存储库元素下的 repository元素指定需要从哪里获取依赖项。它将进入画面只有当 mvn install不在 mvn deploy。对吧?

57158 次浏览

你说的太对了!

来自 参考 POM:

如果 repositories元素在 POM 中指定 Maven 可以下载远程工件以供当前项目使用的位置和方式,那么 distributionManagement则指定在部署远程存储库时该项目将到达哪里(以及如何)。如果未定义快照存储库,则将使用存储库元素进行快照分发。

  • distributionManagement元素下声明的存储库将用于部署,即在运行 mvn deploy时。
  • repositories元素将用于下载项目的依赖项。该命令不一定是 mvn install,而是需要 Maven 从存储库中提取工件的任何命令。