Quarkus 2.1.1.Final运行mvnw test出现FastThreadLocal类未找到异常
问题根因
该异常由项目依赖冲突导致:Quarkus 2.1.1.Final 底层依赖Netty组件,而pom中引入的第三方依赖(如svnkit、poi等)间接引入了版本不兼容的Netty包,或者将Netty核心依赖netty-common(FastThreadLocal类属于该包)的传递依赖排除,最终导致测试运行时类加载失败。
解决方案
步骤1:锁定Netty版本
在pom的dependencyManagement节点下,于已有的quarkus-bom配置之后新增Netty版本锁定配置,避免第三方依赖覆盖Quarkus配套的Netty版本:
<dependencyManagement> <dependencies> <!-- 原有quarkus-bom配置保留,下方新增Netty版本锁定 --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>4.1.65.Final</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
步骤2:显式引入缺失的核心依赖
若锁版本后问题仍存在,直接在<dependencies>节点下主动引入netty-common依赖:
<dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <!-- 无需指定版本,已通过上方netty-bom统一锁定 --> </dependency>
步骤3:清理缓存重新执行测试
运行以下命令清理本地构建缓存后再执行测试:./mvnw clean test
可选冲突排查方案
如果以上操作未解决问题,可执行./mvnw dependency:tree命令检索所有Netty相关依赖,定位到引入非4.1.65.Final版本Netty的第三方依赖,通过<exclusions>标签排除其自带的Netty传递依赖即可,参考示例:
<dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> <version>1.10.3</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
内容的提问来源于stack exchange,提问作者Fernando
相关产品推荐
相关产品推荐

