Gradle构建SpringBoot程序依赖管理之依赖版本自动控制

栏目: Java · 发布时间: 5年前

内容简介:前言:Spring体系中很多库之间相互依赖,但是由于版本之间差异比较大,我们需要比较精确的知道每个库的版本对应关系,不然很容易造成“库”与“库”之间对应不上,导致部分功能无效,甚至是异常情况。程序员排查起来一个头两个大,本篇文章将介绍如何利用gradle的插件来实现版本自动管理机制

前言:Spring体系中很多库之间相互依赖,但是由于版本之间差异比较大,我们需要比较精确的知道每个库的版本对应关系,不然很容易造成“库”与“库”之间对应不上,导致部分功能无效,甚至是异常情况。程序员排查起来一个头两个大,本篇文章将介绍如何利用gradle的插件来实现版本自动管理机制

1、依赖管理

SpringBoot构建系统文档

Gradle构建SpringBoot程序依赖管理之依赖版本自动控制

  • 1、每个SpringBoot版本都提供了他能支持的依赖清单, 所以开发中我们不需要在配置文件中指定版本,SpringBoot会自动帮我们管理这些依赖,当我们升级SpringBoot的时候,SpringBoot所支持的依赖清单也会自动升级
  • 2、我们在用SpringBoot管理依赖的时候,可以自定义版本号覆盖SpringBoot本身依赖的版本
  • 3、springBoot支持的依赖清单包括Spring所有模块以及Springboot依赖的第三方库
  • 4、每个发布的SpringBoot版本都与一个基础版本的SpringFramework有关联,官方是不建议指定版本的

上述的官方文档关于依赖管理的描述,总结下来就是:

在SpringBoot开发中,如果使用了依赖管理,那么Spring所有模块和SpringBoot依赖的第三方库我们不需要指定版本号

关于SpringBoot依赖的第三库在上述链接文档的这个部分(点击POM即可查看):

Gradle构建SpringBoot程序依赖管理之依赖版本自动控制

:warning::此处提供 SpringBoot 2.1.6 依赖的三方库 ,其他版本自行找到指定版本的文档查看

2、gradle自动依赖

本文重点讲解gradle如何配置自动依赖,关于maven配置 点击这里查看

gradle配置点击这里

Gradle构建SpringBoot程序依赖管理之依赖版本自动控制

文档中描述:如果你想使用依赖关系管理,那么你需要保证你的gradle的版本大于4.4

我们通过实战方式,针对gradle配置自动依赖管理进行说明。

3、实战

build.gradle配置

方式一: 将SpringBoot插件应用于项目,依赖的插件将依赖清单加载到项目中,详细见配置中描述(建议直接使用此配置)

plugins {
    //id 'java'
    //springboot插件,加入版本,那么Spring相关依赖,则自动加入(当使用其他插件的时候,还会自动加载插件所带的任务)
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    //第一种引入方式:写在此处,需要手动设置依赖管理的版本,否则无法执行(手动指定版本,好处是插件集中管理在plugins里面)
//    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}
apply plugin: 'java'
//第二种引入方式:应用依赖管理插件,自动给插件追加版本号(建议使用此配置)
apply plugin: 'io.spring.dependency-management'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
//设置commons-pool2版本为'2.6.1',Spring依赖的是2.6.2
ext['commons-pool2.version'] = '2.6.1'
dependencies {
    //Spring模块
    compile("org.springframework.boot:spring-boot-starter-web")
    //Spring依赖的第三方模块(2.1.6依赖的是3.8.1)
    compile("org.apache.commons:commons-lang3")
    //Spring依赖的第三方模块(2.1.6依赖的是2.6.2)指定依赖版本为2.6.1
    compile('org.apache.commons:commons-pool2')
    //未被依赖的库需要手动:我司开源的 轻代码开发框架核心包,文末源码链接
    compile('com.diboot:diboot-core:2.0.0')
}

方式二:如果你仅仅是为了要依赖管理,而不需要插件的功能,你可以使用SpringBootPlugin提供的BOM_COORDINATES来进行依赖管理控制也可以达到效果

plugins {
    //依赖springboot插件,但是不应用
    id 'org.springframework.boot' version '2.1.6.RELEASE' apply false
}
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
//使用SpringBootPlugin提供的依赖插件
dependencyManagement {
    imports {
        mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
    }
}

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
//设置commons-pool2版本为'2.6.1',Spring依赖的是2.6.2
ext['commons-pool2.version'] = '2.6.1'
dependencies {
    //Spring模块
    compile("org.springframework.boot:spring-boot-starter-web")
    //Spring依赖的第三方模块(2.1.6依赖的是3.8.1)
    compile("org.apache.commons:commons-lang3")
    //Spring依赖的第三方模块(2.1.6依赖的是2.6.2)指定依赖版本为2.6.1
    compile('org.apache.commons:commons-pool2')
    //未被依赖的库需要手动:我司开源的 轻代码开发框架核心包,文末源码链接
    compile('com.diboot:diboot-core:2.0.0')
}

4、总结

  • Spring相关模块,以及SpringBoot依赖的库可以通过依赖管理,自动获取最适合的库版本
  • 未加入SpringBoot依赖清单的库,版本号不可省略,需要手动设置版本
  • 版本依赖管理是开发中基础环节,使用版本管理有效减少版本依赖的校对,可以提高开发效率

diboot 简单高效的轻代码开发框架


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

(美)GeorgeF.Luger / 郭茂祖;刘扬;玄萍;王春宇 / 机械工业出版社 / 2010-1 / 79.00元

《人工智能复杂问题求解的结构和策略(原书第6版)》是一本经典的人工智能教材,全面阐述了人工智能的基础理论,有效结合了求解智能问题的数据结构以及实现的算法,把人工智能的应用程序应用于实际环境中,并从社会和哲学、心理学以及神经生理学角度对人工智能进行了独特的讨论。新版中增加了对“基于随机方法的机器学习”的介绍,并提出了一些新的主题,如涌现计算、本体论、随机分割算法等。 《人工智能复杂问题求解的结......一起来看看 《人工智能》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具