Axon v4.9.5项目启动失败求助:依赖版本兼容问题排查
排查解决方向
1. 定位Guava 19.0的引入源头
- 用依赖分析工具找出哪个依赖带进来的旧版Guava:
- Maven项目:执行
mvn dependency:tree -Dincludes=com.google.guava:guava,输出会显示所有引入Guava的依赖路径 - Gradle项目:执行
./gradlew dependencies --configuration compileClasspath | grep guava,可根据项目实际配置调整configuration参数
- Maven项目:执行
2. 强制统一Guava版本
- grpc-api 1.59.1要求的Guava版本至少为31.1-jre(可查grpc官方依赖清单确认),直接在项目中指定该版本并强制生效:
Maven在<dependencyManagement>中添加:
Gradle则使用强制配置:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency>implementation('com.google.guava:guava:31.1-jre') { force = true }
3. 核对Axon与其他组件的版本兼容性
- Axon Framework 4.9.2有自身的依赖版本要求,查看Axon官方文档确认它兼容的Guava版本,优先保证Axon依赖链正常,再验证是否适配grpc-api
4. 排除Eureka依赖中的旧版Guava
- 如果是Eureka客户端依赖引入的旧版Guava,直接在依赖声明中排除它:
Maven示例:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency>
5. 验证修复效果
- 修改依赖后启动项目,先检查Eureka相关警告是否消失,再测试Axon的命令、事件处理功能是否正常,避免因版本强制引入新的兼容性问题
内容的提问来源于stack exchange,提问作者Mohamed Ouksili
相关产品推荐
相关产品推荐

