irpas技术客

SpringBoot项目的build.gradle配置介绍_木下藤吉郎_build.gradle springboot

未知 3814

?Gradle 是用了一种基于 Groovy 的领域特定语言(DSL,Demain Specific Language)来声明项目设置,摒弃了 XML(如 ANT 和 Maven)的各种繁琐配置。

插入一个我的Eureka Service的项目结构图 构建脚本:build.gradle,需要注意的是,脚本内容的执行是有先后顺序的,一般来说按buildscript->plugins->repositories->dependencies->dependencyManagement,当然如果是其他的项目,比如java啦、C++啦,可能有其他的差别,本文以实用为宗旨,这里只介绍springboot项目

buildscript { repositories { maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } dependencies { classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.4.5' } } plugins { id 'org.springframework.boot' version '2.4.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.zkcloud' version = '1.0.0' repositories { maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } ext { set('springCloudVersion', "2020.0.2") } dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'com.github.ben-manes.caffeine:caffeine:2.8.8' } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } 1、构建脚本-buildscript buildscript { repositories { /*从哪儿下构建插件*/ maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } dependencies { /*下什么构建插件*/ classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.4.5' } }

构建脚本闭包,主要是找到构建项目用到的插件,Gradle支持Java、C++、Android、SpringBoot等

不同的项目,有对应的构建插件

其中:repositories指定仓库的位置,dependencies指定了插件类型和版本

2、插件-plugins plugins { id 'org.springframework.boot' version '2.4.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' }

plugins闭包指定项目中需要用的插件

id 'org.springframework.boot' 引入了springboot插件,可执行springboot项目相关的task指令

id 'io.spring.dependency-management' 引入了依赖管理相关的插件,可执行依赖相关的指令

id 'java' 引入了Java插件,就可以支持java编译、运行、打包等task指令

3、仓库-repositories repositories { maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } }

用于指定项目中的Jar包依赖,需要从哪里下载,由于各种各样的原因,我们需要改成国内的镜像

比如,阿里的镜像 :maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }

4、依赖-dependencies dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.cloud:spring-cloud-starter-config' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'com.baomidou:mybatis-plus-boot-starter:3.1.0' implementation 'com.alibaba:druid-spring-boot-starter:1.1.9' implementation 'org.apache.commons:commons-pool2' implementation 'mysql:mysql-connector-java' }

显然,是项目中引入外部依赖的关键,类比于maven,可以发现是类似的

implementation 是springboot插件提供的task指令,指定作用域为:从编译、打包到运行的整个过程都有效,类似于maven的scope节点

可以用 groupId artifactId version 指定一个具体依赖

implementation groupId 'com.baomidou' artifactId 'mybatis-plus-boot-starter' version '3.1.0'

也可以用

implementation 'com.baomidou:mybatis-plus-boot-starter:3.1.0' 5、依赖管理-dependencyManagement dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }

这一块主要是依赖管理相关,如果这涉及到,多模块、父子模块,那么在这里,可以界定,全局的依赖版本,记住一点的是,这个地方并不会引入依赖,指定提前界定好,那么在各模块中就不用写版本号了,比如前面说的dependencies里面的依赖,和springboot“同宗同族”的,基本上都没有指定版本,就是因为这里已经指定了springboot的版本,方便依赖的版本管理


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #buildgradle #springboot #gradle #是用了一种基于 #groovy #specific