最近,我不断遇到以下问题:
库项目A有一个可传递的依赖项B。依赖项B有漏洞。我通过添加一个<dependencyManagement>
条目到A(或它的多模块父项)来更新B来纠正这一点。然后一切都很好,依赖树和依赖列表都很好,测试是绿色的。
现在,另一个项目P使用A作为依赖项,在项目P中,传递依赖项B又有了坏的(易受攻击的)版本,因为A的<dependencyManagement>
被忽略了。
我该怎么办
- 将
<dependencyManagement>
条目也添加到P中,尽管它实际上并不属于那里。 - 不使用
<dependencyManagement>
,而只使用依赖项?
1条答案
按热度按时间efzxgjgh1#
以下是另外两个完整选项:
flatten-maven-plugin
具有允许克服这样的问题的设置:展平直接依赖关系和传递依赖关系。这将检查完整的依赖关系树,并将所有传递依赖关系作为直接依赖关系拉出,并相应地设置它们的版本。如果您要发布使用依赖关系管理来管理依赖关系版本的库,则建议执行此操作。
但是它会产生奇怪的泡泡,比如:
1.看起来所有的东西都已经在
maven-resolver
项目中实现了,但是没有集成到maven中(请检查MNG-5761,MRESOLVER-10,MRESOLVER-33)。从这个Angular 看,实现一些琐碎的扩展就足够了,比如: