2017-03-07 11 views
3

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プロジェクトに着手する際に特定のバージョンの組み合わせを始めることを選択する方法についてのアプローチを持っていますか?

編集:私はCamden.SR5で1.5.2.RELEASEを使用してもMavenのエラーはありませんの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> 

から昨日から

スニペットに遭遇したような問題の別のインスタンスを追加しますしかし、アプリケーションが起動すると、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と併用すると、一般的にうまくいく組み合わせです。

答えて

4

http://projects.spring.io/spring-cloud/のクイックスタートに従うと、互換性のあるバージョンが表示されます。カムデンリリーストレインは、春のブート1.5.xの

と互換性がありませんまた、互換性のあるコンポーネントのバージョンをノート各リリースのリリースノートを読むことができます:

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

春クラウドカムデンは春に基づいていますBoot 1.4.x。

+0

ありがとうございました。あなたは「CamdenのリリーストレインはSpring Boot 1.5.xと互換性がありません」と述べています。カムデンは、あなたが参照していたノートのリンクをリリースし、次のように説明します。ブート1.5との互換性を追加し、ブート1.3との互換性を失います。クイックスタートにも同じ情報が記載されています - CamdenリリーストレインはSpring Boot 1.4.xで構築されていますが、1.5.xでもテストされています。 – Manglu

+2

'Camden.SR5'から、' Camden'リリース系はBoot 1.5と互換性があります。 –

+0

ええ、私はそれを逃した。 – Strelok

関連する問題