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

Pom.xml指定依赖无法覆盖AWS SDK传递的Netty依赖问题

解决方案

问题根源在于AWS SDK的依赖管理(如官方BOM)会锁定Netty的版本,直接添加Netty依赖无法覆盖传递依赖的版本,需要通过Maven的dependencyManagement来强制统一版本。以下是两种可行的解决方式:


方案一:通过Netty BOM统一版本

在pom.xml的<dependencyManagement>节点中导入Netty BOM,且确保它在AWS SDK BOM之后(若项目使用了AWS BOM),这样Netty BOM的版本会覆盖AWS BOM中指定的Netty版本:

<dependencyManagement>
    <!-- 若使用AWS SDK BOM,先导入它 -->
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>2.46.9</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    
    <!-- 导入Netty BOM,放在AWS BOM之后以覆盖版本 -->
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-bom</artifactId>
        <version>4.1.133.Final</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencyManagement>

方案二:逐个指定Netty模块版本

若不想使用BOM,可在dependencyManagement中直接声明所有涉及的Netty模块版本(包括间接依赖的模块,避免旧版本残留):

<dependencyManagement>
    <dependencies>
        <!-- 核心漏洞模块 -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        
        <!-- 间接依赖的关联模块 -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http2</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-common</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-buffer</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-unix-common</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-classes-epoll</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver</artifactId>
            <version>4.1.133.Final</version>
        </dependency>
    </dependencies>
</dependencyManagement>

验证

配置完成后,执行以下命令确认版本已更新:

mvn clean dependency:tree

注:若代码未直接依赖Netty类,无需在<dependencies>节点单独添加Netty依赖,dependencyManagement已足够强制传递依赖使用指定版本。

内容的提问来源于stack exchange,提问作者gene b.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:13:11