maven存储库

时间:2012-12-02 22:34:04

标签: maven

我读到here“你添加的存储库越多,你的构建就越慢”。这是真的吗?

我认为如果.m2文件夹中提供了您具有依赖关系的工件的版本,则甚至不会查询存储库,如果它不可用,则maven将仅循环通过它们直到它找到正确的工件,并且不会再看了。因此,在任何一种情况下,它都不会消耗额外的带宽。

2 个答案:

答案 0 :(得分:1)

this question中所示,在某些情况下Maven将在远程存储库中搜索依赖项,即使它已在本地存储库中可用。对于SNAPSHOT依赖项或缺少pom.xml的依赖项会发生这种情况。所以我只能假设博客帖子可能意味着如果您的构建属于任何这些类别,Maven将扫描您在每个构建中定义的远程存储库(实际上对于SNAPSHOTS,您可以限制Maven将通过启用/禁用扫描的存储库根据需要从每个存储库中快照。如果它找不到它想要的东西,它当然必须在它放弃之前扫描所有的存储库,这意味着存储库越多,扫描所需的时间就越多(并且在SNAPSHOTS的情况下它会无论如何都要扫描所有存储库,因为事件如果它在一个存储库中找到更新的版本,它就无法知道另一个存储库不会拥有更新的版本。即使在Maven实际找到它所寻找的依赖关系并停止搜索的情况下,可能发现依赖关系的存储库是最后扫描的存储库,因此所有其他存储库都在其之前进行扫描。

答案 1 :(得分:1)

当您构建项目时,它将转到m2存储库以检查jar是否已存在,如果不存在,则从中央存储库下载jar。因此,如果一旦下载了罐子,那么在构建项目时不需要时间。