java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V
如果在搭建springboot項目的時候遇到過這樣的問題,那么這個問題就是版本兼容問題。
還有一種情況就是關於綁定的問題。提示binder failed,問題大概類似。
這個問題也困擾了我很久。上周五搭建報表項目的時候也突然又遇到這個問題了,所以周六日回去研究了一番,也參考了一些博客關於這方便的解決方案。最終通過自己的多個嘗試與分析,解決了問題。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-client</artifactId>
</dependency>
這里引入注冊中心jar包時是不需要指定版本號的。因為springboot與eureka整合的時候兩個jar的版本很難兼容。所以我們要讓系統自己去匹配。那么系統如何自動去自適應呢。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
加入上邊的內容系統就可以自動進行匹配了。
我用的springboot 2.1.5.RELEASE,刪除本地倉庫.重新install 后發現倉庫中用的是2.0.0。啟動項目正常!
拓展
那么具體問題是什么呢
spirngcloud版本演變過程
版本名稱 版本
Finchley snapshot版
Edgware snapshot版
Dalston SR1 當前最新穩定版本
Camden SR7 穩定版本
Brixton SR7 穩定版本
Angel SR6 穩定版本
springboot與springCloud版本匹配關系
Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x
Dalston和Edgware 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x
Camden 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x
Brixton 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x
Angel 兼容Spring Boot 1.2.x
所以我們通過配置FINchley 就可以正常使用Springboot2.0 如果你springboot版本是1.x
那么可以嘗試一下用Brixton試試。
如果對您有用,麻煩點個贊,順便加個關注。哈哈!
