我有一个依赖关系库,该依赖关系库由我包含在POM中的一个库引入。 安全扫描已将此传递依赖项标记为操作风险,并要求将其升级到最新版本。我需要了解该怎么做? 我尝试从POM中排除该库,然后声明对相同传递依赖项的最新版本的直接依赖项,但出现classNotFound异常。
代码详细说明:- 直接依赖-> hibernate-core 标记为可传递的依赖关系-> ANTLR 2.7.7
我尝试过的失败修复程序->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.18.Final</version>
<exclusions>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.0ea8</version>
</dependency>
请提出一种替代传递库的通用方法。
答案 0 :(得分:3)
无需排除。您可以在<dependencyManagement>
中覆盖传递依赖项,例如:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.0ea8</version>
</dependency>
...
这将覆盖您指定版本的库的所有可传递引用。
但这不会保护您免受classNotFound
异常的影响。如果您更新库,则类名称可能已更改,并且程序可能会中断。