之前使用的都是maven项目,本文针对gradle的使用做一些记录
gradle排除依赖
configurations.all{
exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-netflix-ribbon'
}
问题
org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose(Ljava/lang/String;Lorg/springframework/cloud/client/loadbalancer/Request;)Lorg/springframework/cloud/client/ServiceInstance;
主要原因是还是jar包冲突,nacos依赖的ribbon和springcloud的ribbon存在同个方法的不同实现,不兼容。
排除掉nacos的spring-cloud-starter-netflix-ribbon依赖:
本质上是jar包冲突,nacosnacos依赖的ribbon和springcloud的ribbon存在同个方法的不同实现,导致了不兼容。所以需要排除依赖
解释一下:exclude后面的group相当于maven中的groupId, module相当于maven中的artifactId
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--不使用Ribbon 进行客户端负载均衡-->
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>