gpt4 book ai didi

java - 具有大量依赖项的项目中依赖项管理的最佳实践

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:17 25 4
gpt4 key购买 nike

我们的项目就像是大量不同其他库的适配器/外观接口(interface)。依赖关系以某种方式重叠,有时会发生冲突,有时甚至会因为错误版本的依赖关系提供相同接口(interface)的错误行为而导致项目无声无息地中断。我们使用 Ivy 和 Ant 进行基本的依赖管理。管理依赖关系和及早发现错误行为的最佳做法是什么?

最佳答案

这个问题的重要部分是关于过程,而不是工具。

如果项目的依赖项由其他团队或第三方拥有,则该项目必须明确接受每个新依赖项的每个新版本。允许依赖项自行升级将允许它们在没有警告的情况下破坏依赖项目,这听起来像是正在发生的事情。

每个依赖项都必须发布已知版本,无论是二进制文件还是版本控制中的标记,或者任何适合您的堆栈的版本。项目每次要升级依赖时,都必须测试升级的结果。 (像往常一样,全面的自动化测试会有很大帮助。)如果失败(要么是因为依赖刚刚被破坏,要么是因为依赖引入了传递依赖的不兼容版本),放弃升级,向所有者报告问题依赖项,并在他们发布修复问题的版本后重试。如果成功,请更改项目在其构建配置中使用的依赖项版本。

理想情况下,一个项目将一次升级一个依赖项,并分别对每个升级进行全面测试。如果有必要一次升级多个依赖项(可能是因为两个依赖项都依赖于第三个依赖项,而第三个依赖项在系统中只能有一个版本)那很好,尽管这是一个更大的变化,因此风险更大。如果您的项目具有像这样的传递依赖项,那么让它们在合理的范围内向后兼容尽可能多的版本将是值得的。

当然,许多工具都足够轻松地支持这个过程:只需将每个依赖项固定到特定版本即可。

关于java - 具有大量依赖项的项目中依赖项管理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919921/

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