gpt4 book ai didi

maven - maven 查找其依赖项的顺序是什么?

转载 作者:行者123 更新时间:2023-12-04 02:53:56 24 4
gpt4 key购买 nike

我有一个使用 war overlays 的多模块项目我们有一个持续集成服务器,经常部署快照。我有这样的问题,如果我在 CI 服务器部署它之后立即执行 mvn compile,我的构建会得到我的本地更改还是 CI 更改?如何强制我的项目使用我在本地更改的 war 叠加层?我认为 install 可以做到这一点,但是如果 CI 服务器构建一个具有较新时间戳的版本怎么办。它会使用哪一个?

这只是我的众多问题中的一小部分,我无法在 maven 文档中找到权威的答案。但是,即使我可以,我也可能会马上回到这里,请别人更好地解释文档 :P 所以,我问,maven 用来查找它的依赖项的顺序/逻辑是什么?

最佳答案

就 Maven 而言,从您的 war 叠加层生成的 Artifact 将只是另一个 Artifact 。

if I do a mvn compile right after the CI server does a deploy of it, will my build get my local changes or the CI changes?

这将取决于设置文件中的快照更新策略。它默认设置为每天。更多详情:http://maven.apache.org/settings.html#Repositories

How do I force my project to use a war overlay I've changed locally?

将快照更新策略更改为从不(或-o 选项,由@matsev 建议)。这意味着您使用的 SNAPSHOT 依赖项将始终是本地版本。要使用此 updatePolicy 强制从存储库中获取最新版本,请使用 -U 选项。

I figure an install could do that, but what if the CI server builds a version with a newer timestamp. Which one will it use?

是的,安装 基本上会将您的 Artifact 部署到本地存储库(.m2 文件夹)。然后,根据 updatePolicy,maven 将比较本地部署的 Artifact 和存储库 Artifact 。如果 updatePolicy 设置为always,maven 将always 获取存储库一个如果它有更新的时间戳。 daily 也是如此,除了 maven 只会比较时间戳daily

I can't find an authoritative answer on the maven documentation.

完全同意。遗憾的是,我部分地通过经验来理解其中的大部分内容。

关于maven - maven 查找其依赖项的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com