springcloudalibaba版本问题的采坑日记

/ 默认分类 / 0 条评论 / 898浏览

springcloud-alibaba版本问题

  1. 首先springcloudalibaba是阿里巴巴开源的一套与springcloud配合使用的一系列微服务架构中的技术栈,刚开始时是在spring中进行项目孵化,孵化时的版本是这样的

以0.9.0为例,依赖的groupid是这样的

<dependency>
    <groupId>org.springframework.cloud</groupId> 重点在这里,暗示是在spring旗下进行孵化
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>0.9.0.RELEASE</version>  孵化时的版本
    <type>pom</type>
    <scope>import</scope>
</dependency>

当然没过多久,项目孵化成功,也就发布正式版本也就是毕业版,是这样的版本号:

以2.1.2为例,依赖的groupid是这样的

<dependency>
    <groupId>com.alibaba.cloud</groupId>  重点在这里,暗示项目成功孵化了,这个框架是由阿里开源的
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.1.2.RELEASE</version>  正式的版本号
    <type>pom</type>
    <scope>import</scope>
</dependency>

2.注意事项

所以在使用的时候,就会有坑,如果不知道上面,就会在更改版本的时候出现混乱
比如开始的时候使用的是孵化版本0.2.0,那么使用的是org.....的groupid来进行在父工程中进行版本管理,在子项目中也就是使用org....的groupid进行引入需要使用的依赖,如nacos-config等

但是改为毕业版后比如是2.1.2,那么父工程中的版本管理引入的依赖的groupid就是com.alibaba....,在子项目中当然也就是相应的依赖的groupid改为com.alibaba....

所以从孵化版转为毕业版就不是只切换一个父工程中的版本管理的依赖的版本号了,这里需要注意

3.另外springcloud和springcloudalibaba和springboot三者的版本需要严格保持一致,否则就像会报错这样

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bootstrapImportSelectorConfiguration': 
Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: 
org/springframework/boot/context/properties/ConfigurationPropertiesBean


Caused by: java.lang.NoClassDefFoundError: 
org/springframework/boot/context/properties/ConfigurationPropertiesBean

    at org.springframework.cloud.context.properties.ConfigurationPropertiesBeans.postProcessBeforeInitialization(ConfigurationPropertiesBeans.java:94)

Caused by: java.lang.ClassNotFoundException:
 org.springframework.boot.context.properties.ConfigurationPropertiesBean

版本选择见这篇博客