web-dev-qa-db-ja.com

Spring-bootとSpring-cloudの互換性マトリックスはありますか?

SpringbootとSpringcloudの間に互換性マトリックスが存在するかどうか疑問に思っていますか?

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/4

コミュニティは、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>

Camden.SR5で1.5.2.RELEASEを使用しても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

Brixton.SR6で1.4.5を使用することは、一般的にはうまく機能する組み合わせです。

21
Manglu

http://projects.spring.io/spring-cloud/ のクイックスタートに従うと、互換性のあるバージョンがわかります。 CamdenリリーストレインはSpring Boot 1.5.xと互換性がありません

互換性のあるコンポーネントバージョンを記載した各リリースのリリースノートも読むことができます。

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

Spring Cloud Camdenは、Spring Boot 1.4.x上に構築されます。

14
Strelok

はい: http://start.spring.io/actuator/info

これには、単なるスプリングクラウドよりも多くのライブラリが含まれていますが、すべてのライブラリが含まれているわけではありません。

11