You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven项目中排除传递依赖失效问题求解及原因分析

Maven依赖排除后安全扫描仍检测到老版本依赖的问题

我有一个Java Spring Boot应用A,依赖第三方Jar包B,B又依赖C。常规升级C版本(比如从v1.0到v2.0)的做法是在A的pom.xml里通过Maven排除特性把C从B的依赖中排除,再直接声明C的新版本作为依赖,或者在dependencyManagement里指定C的新版本。

但这种方法不是所有场景都管用。比如我遇到的情况:org.glassfish.metro:webservices-rt:2.4.3依赖存在高危漏洞的woodstox-core:5.1.0,需要升级到6.4.0。我的项目A直接依赖webservices-rt:2.4.3,按照上述方法操作后,Maven依赖树里已经看不到woodstox-core:5.1.0,但Aqua Scan仍然检测到webservices-rt依赖该旧版本。

我的pom.xml片段如下:

<dependency>
    <groupId>com.fasterxml.woodstox</groupId>
    <artifactId>woodstox-core</artifactId>
    <version>6.4.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish.metro</groupId>
    <artifactId>webservices-rt</artifactId>
    <version>2.4.3</version>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.woodstox</groupId>
            <artifactId>woodstox-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

我猜测这种方法是否生效和Jar包B的打包方式有关,希望有相关经验的同行分享下见解。

内容的提问来源于stack exchange,提问作者ITMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:20:26