是否有Spring-Boot和Spring-Cloud的兼容性矩阵?

问题描述:

我想知道Springboot和Springcloud之间是否存在兼容性矩阵?是否有Spring-Boot和Spring-Cloud的兼容性矩阵?

我在STS上创建了一个简单的项目,并且遇到了兼容性问题。

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.1.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 


<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>Camden.SR5</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

对Springboot和Springcloud的支持版本有一个很好的看法会使事情变得更简单。

我没有看到,谈论这需要一个开放的问题 - https://github.com/spring-cloud/spring-cloud-build/issues/43

难道社会人士对他们如何选择一种方法来获取特定版本的组合,当他们踏上SpringCloud项目启动?

编辑:添加,我因为从昨天的pom.xml

片段遇到这样的问题的另一个实例

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.2.RELEASE</version> 
     <!--<version>1.5.2.RELEASE</version> --> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 


    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.springframework.cloud</groupId> 
       <artifactId>spring-cloud-dependencies</artifactId> 
       <!-- <version>Camden.SR6</version --> 
       <!-- <version>Brixton.SR5</version> --> 
       <!-- <version>Camden.SR6</version> --> 
       <version>Camden.SR5</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

有使用1.5.2.RELEASE与Camden.SR5没有Maven的错误然而,当应用程序启动时,会引发NoClassDefFoundError。

2017-03-28 09:51:15.148 ERROR 15808 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

java.lang.NoClassDefFoundError: org/springframework/cloud/context/named/NamedContextFactory$Specification 
    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_112] 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_112] 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_112] 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_112] 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_112] 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_112] 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_112] 
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_112] 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_112] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_112] 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_112] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_112] 
    at org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerClientConfiguration(FeignClientsRegistrar.java:367) ~[spring-cloud-netflix-core-1.2.5.RELEASE.jar:1.2.5.RELEASE] 
    at org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerDefaultConfiguration(FeignClientsRegistrar.java:104) ~[spring-cloud-netflix-core-1.2.5.RELEASE.jar:1.2.5.RELEASE] 
    at org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerBeanDefinitions(FeignClientsRegistrar.java:87) ~[spring-cloud-netflix-core-1.2.5.RELEASE.jar:1.2.5.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:352) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:524) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at com.forecastessentials.school.SchoolUniformForecastApplication.main(SchoolUniformForecastApplication.java:12) [classes/:na] 
Caused by: java.lang.ClassNotFoundException: org.springframework.cloud.context.named.NamedContextFactory$Specification 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_112] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_112] 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_112] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_112] 
    ... 31 common frames omitted 

使用1.4.5与Brixton.SR6是一种适用于我的组合。

如果您按照http://projects.spring.io/spring-cloud/的快速入门,它会告诉您兼容的版本。卡姆登版本序列不具有弹簧引导1.5.x的兼容

你也可以阅读每个指出兼容的组件版本版本的发行说明:

https://github.com/spring-projects/spring-cloud/wiki/Spring-Cloud-Camden-Release-Notes

春云卡姆登建立在Spring引导1.4.x.

+0

谢谢。您曾经声明“Camden发行版本与Spring Boot 1.5.x不兼容”。您引用的Camden发行说明链接指出以下内容 - 添加Boot 1.5兼容性并打破Boot 1.3兼容性。快速启动也说明了相同的信息 - Camden发行版建立在Spring Boot 1.4.x上,但也在1.5.x版本中进行了测试。 – Manglu

+2

从'Camden.SR5'开始,'Camden'发行版将与Boot 1.5兼容。 –

+0

是的,我错过了。 – Strelok