状态:原创
问题抛出:
Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
at org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry.getRegisteredServices(OrderedSPIRegistry.java:90)
at org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry.getRegisteredServices(OrderedSPIRegistry.java:71)
比较发现,项目中本身其实引用了该jar包依赖的,只是版本低了,没有该方法。网上有说是Guava没有向后兼容,由其第三库再依赖guava后,容易项目里造成jar冲突,真实头疼。maven中可以通过排除Guava包便可达到兼容。
项目中的guava-16.0.1.jar版本低了,ShardingSphere 5.0.0-beta中间件应该使用guava-29.0-jre.jar
com.google.guava guava 29.0-jre 引用的不同第三方包所依赖的Guava冲突,也可尝试排除依赖或者将冲突的第三方依赖包分开到不同的模块POM(Maven分模块) com.google.guava guava