首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为脱机构建自动更新本地maven存储库.m2文件夹

如何为脱机构建自动更新本地maven存储库.m2文件夹
EN

Stack Overflow用户
提问于 2020-01-31 21:02:00
回答 1查看 302关注 0票数 0

我正在做一个大型项目,它有很多依赖项,其中很多都是快照依赖项。由于快照依赖关系,构建需要大量的时间(大约一个小时),因为对于每个依赖关系,它需要检查它是否在远程人工工厂中更新,即使快照版本没有更改。对于发布版本,没有问题,因为只有当版本更新时,才会检查远程,否则将使用来自.m2的本地可用jars。

与上面的场景相比,如果我在本地.m2中拥有所有依赖项时使用-o标志进行离线构建,构建只需要大约5-10分钟,这节省了大约40-45分钟的构建时间。但由于项目很大,而且很多人都在做,每当我拉出更改时,可能会有一些代码更改,这需要最新的快照和离线构建中断,因为即使是一个单一的不匹配也可能导致构建中断。

因此,为了解决这个问题,我正在考虑以下方法: 1.始终使用-o标志进行离线构建。2.创建一些外部脚本(可能在nodejs中),如果pom中给定的依赖关系在远程artifactory上更新,该脚本将定期进行扫描。如果是,则拉入本地.m2,否则不执行任何操作。

有没有更好的替代方案呢?另外,一旦我弄清楚要更新哪个工件,我可以用什么方法强制只更新那个特定的工件,而不需要传递依赖?使用上面的方法,如果任何可传递的依赖项发生变化,仍然有可能发生构建中断,但这种情况不会经常发生,在这种情况下,我将不得不运行完整的在线构建。

我想过设置本地代理人工服务器,但它在这种情况下不会有帮助,因为对于快照解析,它将以任何方式转到远程存储库。如果我保持更长的缓存时间,再次有机会丢失更改和构建中断。

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 21:15:51

您可以控制快照检查:

下载策略

updatePolicy String下载更新的频率-可以是"always“、"daily”(默认)、"interval:XXX“(单位为分钟)或"never”(仅当本地不存在时)。

https://maven.apache.org/ref/3.6.3/maven-settings/settings.html#class_snapshots

但是你可能有一些其他的问题,因为45分钟的构建浪费在下载工件上是很多的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60004489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档