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 简单高效的轻代码开发框架


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

查看所有标签

猜你喜欢:

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

Algorithms

Algorithms

Sanjoy Dasgupta、Christos H. Papadimitriou、Umesh Vazirani / McGraw-Hill Education / 2006-10-16 / GBP 30.99

This text, extensively class-tested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasi......一起来看看 《Algorithms》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

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

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具