maven到底什么时候下载依赖?

When exactly does maven download dependencies?

我多年来一直在使用 maven,但刚刚意识到需要了解下载依赖项的实际时间 (maven 阶段)。我已阅读 Maven 文档,但找不到下载依赖项的实际阶段。

以下是我的用例的简化说明:

我有一个包含 2 个阶段的 Jenkins 构建作业(因为我的代码依赖于其他内部项目的快照,我使用 -U 来更新快照,因为我想用最新的快照构建我的代码其他项目):

1.快速检查(检查所有代码是否编译)

 mvn test-compile -U

3。慢速检查(构建和单元测试整个代码)

mvn verify -U scoverage:report-only

现在,在执行第 1 步时,如果有人更新依赖项的快照,我将运行在不同的快照。

我想避免这种情况,并且想知道如果我从第 2 步中删除 -U,当第 1 步 运行 时所有依赖项是否仍会更新?或者,是否会出现第 1 步仅将与其相关的依赖项下载到 运行 测试编译阶段而验证阶段需要一组超依赖项的情况?

据我所知,从第二步中删除 -U 是省事的方法。

所有依赖关系都在每次构建的最开始就解决了。

目标dependency:resolve binds by default to the lifecycle phase生成源,验证和初始化后的第三阶段。那么他们都可以在当地买到。

同意,只要作用于相同的 pom,在第二步中删除 -U 可能是正确的做法。

这还假定本地存储库特定于(私有)作业。默认情况下,maven.local 存储库对用户是通用的,位于 ${user.home}/.m2 中。同一节点上的多个执行程序将共享默认存储库。