Spring 教程

Spring 笔记

spring-cloud-dependencies 关于 spring boot 和 spring cloud 版本对应详细说明及作用

Spring 笔记 Spring 笔记


spring-cloud-dependencies 是一个依赖管理器的 pom 文件,顾名思义它主要是对 spring cloud 进行依赖管理。如果项目使用 gradle 进行项目管理,需要 spring boot gradle 插件(spring-boot-gradle-plugin)为 gradle 提供 spring boot 的支持,使用 spring-boot-dependencies 提供的依赖管理。

spring boot 与 spring cloud 版本对应列表

spring boot 和 spring cloud 的版本需要对应,不然会因为 jar 包版本不兼容导致一系列奇怪的问题。因为官方不会保证 spring boot 和 spring cloud 不同版本的兼容性。

具体其大版本对应关系列表:

大版本对应列表
spring boot 版本 spring cloud 版本
Hoxton 2.2.x
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

spring boot starter parent 版本列表参考 maven 中央仓库列表:

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent

spring clound dependencies 版本列表参考 maven 中央仓库列表:

https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies

gradle 示例

下面列出,spring boot 集成 spring cloud 的 gradle 示例:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.8.RELEASE")
        classpath "io.spring.gradle:dependency-management-plugin:1.0.5.RELEASE"
    }
}


apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
apply plugin: "idea"


sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }


jar {
    baseName = 'xxx-xxx'
    version = '1.0-SNAPSHOT'
}


repositories {
    jcenter()
    mavenCentral()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

configurations {
    compile.exclude module: 'slf4j-log4j12'
    compile.exclude module: 'log4j-over-slf4j'
    compile.exclude module: 'slf4j-nop'
    compile.exclude module: 'spring-boot-starter-json'
}


configurations.all {
    //  check for updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}


dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Greenwich.SR3'
    }
}

dependencies {

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
    ......
    ......
}