如何升级maven-core至3.8.4修复Black Duck高危安全漏洞
问题解决方案
核心原因说明
maven-core 2.0.9 不属于你的应用业务依赖,是你当前使用的旧版本Maven插件自身依赖引入的,或是你本地/CI环境安装的Maven运行时版本过低导致的。
具体操作步骤
- 第一步:先定位旧版本maven-core的来源
执行以下命令查看所有插件的依赖树,确认是哪个插件引入了低版本maven-core:mvn dependency:resolve-plugins | grep maven-core - 第二步:升级pom中现有Maven插件到最新稳定版
你当前pom里的几个核心Maven插件版本都过老,直接修改版本号即可:- 把
properties节点下的maven-compiler-plugin.version值从3.6.1改为3.12.1(该版本兼容JDK8,依赖maven-core 3.x系列) - 把maven-shade-plugin的版本从3.2.0改为3.5.1
- 把maven-enforcer-plugin的版本从3.0.0-M3改为3.4.1(里程碑版本本身就不建议生产使用)
- 把
- 第三步:如果升级插件后仍存在低版本maven-core,手动给插件指定高版本依赖
比如确认是maven-shade-plugin引入的旧版本,就给插件显式添加maven-core依赖,示例如下:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.1</version> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <version>3.8.4</version> </dependency> </dependencies> <!-- 原有executions、configuration等配置保持不变 --> </plugin> - 第四步:升级本地/CI环境的Maven运行时版本
如果你当前构建用的Maven本身就是2.x版本,直接将运行时Maven升级到3.8.4或更高的稳定版,Maven运行时自带的maven-core版本优先级高于插件依赖的版本,这一步能从根本解决问题。
验证方式
修改完成后重新执行构建,查看构建日志下载的maven-core版本是否为3.8.4及以上,再用Black Duck扫描即可消除该高危漏洞告警。
内容的提问来源于stack exchange,提问作者chandu ram
相关产品推荐
相关产品推荐

