首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递依赖型版本管理

传递依赖型版本管理
EN

Stack Overflow用户
提问于 2022-01-06 11:41:57
回答 1查看 272关注 0票数 0

我有一个带有pom文件中的依赖项的maven项目。对于那些直接依赖项,我们有大量的传递依赖项。这些临时依赖项的版本存在一些安全问题。那么,我是否可以更改这些临时依赖项的版本呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 13:16:19

解决方案1)只需使用较新的版本添加对该传递依赖的直接依赖即可。

如果项目myProject 1.0依赖于A1.2,而A1.2依赖于B2.3,那么我的项目的类路径中将有以下jars :myProject1.0、A1.2和B2.3。

但是如果myProject 1.0也依赖于B2.4,那么我的项目的类路径中将有以下jars :MyProject1.0、A1.2和B2.4。它不会在类路径中包含B2.3,因为Maven检测到两个B都使用相同的groupId和artifactId,所以在项目pom中定义的那个就赢了。

试着了解那里发生了什么,运行mvn dependency:tree -Dverbose

这种方法的缺点:当您升级到依赖于B2.5的A1.3时,您可能会在B2.4中运行A1.3(因为您仍然覆盖它),并在运行时获得一个NoSuchMethodError。

解决方案2)使用一个平台bom,为您找到一组兼容的依赖关系版本,并为每个和所有CVE的依赖版本发布一个新版本,例如:夸库斯或Spring。

这种方法的缺点:您需要的特定依赖可能不在其中,从而使您回到了解决方案1)。

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

https://stackoverflow.com/questions/70606581

复制
相关文章

相似问题

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