Quarkus 2.7升级至3.3.3后出现大量类加载器索引警告求助
Quarkus 3.3.3升级后JMS类索引警告解决思路
问题背景
从Quarkus 2.7升级到3.3.3后,应用启动出现大量jakarta.jms、artemis及io.mashona.logwriting相关类的索引警告,源码无直接引用,依赖也未显式引入这些组件。
解决步骤
1. 排查并排除隐式依赖
先确认是否有Quarkus核心扩展间接引入了JMS相关依赖:
- 执行Maven命令检查:
mvn dependency:tree -Dincludes=jakarta.jms,org.apache.activemq,io.mashona - 若发现间接依赖,在对应Quarkus扩展(如
quarkus-resteasy-reactive)中排除:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> <exclusions> <exclusion> <groupId>jakarta.jms</groupId> <artifactId>jakarta.jms-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.activemq</groupId> <artifactId>artemis-core-client</artifactId> </exclusion> <exclusion> <groupId>io.mashona</groupId> <artifactId>logwriting</artifactId> </exclusion> </exclusions> </dependency>
2. 配置Quarkus跳过指定类的索引扫描
若无法排除依赖,直接在application.properties中配置跳过缺失类的索引:
# 跳过JMS相关类 quarkus.index.skip-classes=jakarta.jms.* # 跳过Artemis日志类 quarkus.index.skip-classes=org.apache.activemq.artemis.core.journal.* # 跳过Mashona类 quarkus.index.skip-classes=io.mashona.logwriting.ArrayStore
或通过依赖排除索引:
quarkus.index-dependency.jms.group-id=jakarta.jms quarkus.index-dependency.jms.artifact-id=jakarta.jms-api quarkus.index-dependency.jms.exclude=true
3. 检查触发源类的类型关联
警告指向MyResource.getAnotherResource()返回的AnotherResource类,检查该类的:
- 继承/实现的接口是否包含JMS相关类型
- 字段、泛型参数是否间接关联JMS类
若存在不必要的关联,清理代码;若无法清理,给该类添加注解忽略缺失类的反射注册:
import io.quarkus.runtime.annotations.RegisterForReflection; @RegisterForReflection(ignoreMissing = true) public class AnotherResource { // 类内容 }
4. 添加空beans.xml切换索引模式
在src/main/resources/META-INF下创建空的beans.xml,让Quarkus调整索引扫描逻辑:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd" version="4.0" bean-discovery-mode="annotated"> </beans>
5. 移除不必要的扩展
检查pom.xml/build.gradle,确认是否误引入了JMS相关扩展(如quarkus-artemis-jms),直接移除这些依赖。
内容的提问来源于stack exchange,提问作者nogridbag
相关产品推荐
相关产品推荐

