项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注
最近升级项目的依赖 到最新版本
版本变化
依赖 | 项目版本 | 目标版本 |
---|---|---|
Spring Boot | 2.1.9.RELEASE | 2.2.0.RELEASE |
Spring Cloud | Greenwich.SR3 | Hoxton.RC1 |
Spring Boot Admin | 2.1.6 | 2.2.0 |
Hoxton 版本依赖厂库
目前 Spring Cloud Hoxton
未发布 RELEASE
版本,官方计划 本月发布
使用 Hoxton.RC1
版本需要配置 spring
仓库
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
spring boot admin 未发布 2.2.0
适配版本
解决方法: 使用快照版本2.2.0-SNAPSHOT
, 需要配置快照厂库
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
升级中遇到的问题
- spring boot 2.2.0 bug ,造成 和mybatis 3.5.2 不兼容
官方issue: https://github.com/spring-projects/spring-boot/issues/18670
构造器注入的问题, mybatis 私有构造器不能绑定属性, 造成其他 依赖mybatis
的框架 类型 mybatis-plus
这种问题 https://gitee.com/baomidou/mybatis-plus/issues/I143DB
Failed to bind properties under 'mybatis-plus.configuration.incomplete-result-maps[0].assistant.configuration.mapped-statements[0].parameter-map.parameter-mappings[0]' to org.apache.ibatis.mapping.ParameterMapping
- 解决方法:
我们重新编译了 mybatis 3.5.2 、mybatis-plus 3.2.0 修改部分源码兼容
私有构造器改成public, maven 坐标修改为
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.2.0</
总结
- 由于使用的
Spring Cloud RC
版本未同步到 阿里云等国内镜像厂库
mvn clean install
可能会出现失败,建议重复执行几次即可
- 鉴于Spring Boot 2.2.0 和 mybatis 的不兼容问题,2.2.1 会修复这个问题,建议暂时不要升级2.2.0 直接使用 2.2.1
2.2.1 已经发布,请直接升级到2.2.1 即可解决兼容问题 (2019年11月07补充)