报错表象:
当启动SpringClud项目报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable
或
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
时,就要检查 spring-boot-starter-parent 的版本和 spring-cloud-dependencies 的版本,这两个版本中是否是 spring-boot-starter-parent 的版本太高了。
我的结论:
试过各种版本匹配,最后结论为若想要高版本的spring-cloud-dependencies例如Edgware.SR4,那么spring-boot-starter-parent 版本只能是1开头的高版本,不能是2.X
以下两个version版本经验证,可以正常启动SpringCloud
org.springframework.boot spring-boot-starter-parent 1.5.16.RELEASE
org.springframework.cloud spring-cloud-dependencies Edgware.SR4 pom import