Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
文档地址:点击查看gradle文档
下载地址:点击下载gradle
下载all版本的,里面包含了Gradle SDK 所有相关的内容,包括源代码、文档、示例等.
本地仓库配置
export GRADLE_USER_HOME=/Users/lizechen/myrepository #该路径可与原MAVEN仓库路径相同终端输入
source ~/.bash_profile使环境变量生效
在终端上执行gradle -version,查看是否配置成功
在idea中的Preference中配置Gradle为本地的Gradle
在idea中新建项目
选择Spring Initializr
Spring Initializr Project Settings中的Type 选择Gradle Project
settings.gradles是模块Module配置文件,大多数setting.gradle的作用是为了配置子模块,根目录下的setting.gradle脚本文件是针对module的全局配置
settings.gradle用于创建多Project的Gradle项目。Project在IDEA里对应Module模块。
例如配置module名rootProject.name = ‘project-root’,为指定父模块的名称,include ‘hello’ 为指定包含哪些子模块
//平台根 rootProject.name = 'project-root' //包含子系统以及模块 include ':project-core' //Hello系统模块的加载 include ':project-hello' //World系统模块的加载 include ':project-world'1.implementation 这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。
2.api 完全等同于compile指令。
3.compile 这种是我们最常用的方式,使用该方式依赖的库将会参与编译和打包。
4.testCompile testCompile 只在单元测试代码的编译以及最终打包测试时有效。
5.debugCompile debugCompile 只在debug模式的编译和最终的debug打包时有效。
6.releaseCompile releaseCompile 仅仅针对Release模式的编译和最终的Release打包。
7.provided 只在编译时有效,不会参与打包,可以在自己的moudle中使用该方式依赖。
官方文档
有两种写法
plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' id 'idea' } apply plugin: 'idea' apply plugin: 'java' apply plugin: 'org.springframework.boot'使用plugin有两个步骤:
解析(resolve)到指定plugin的代码位置;应用(apply)plugin,即调用plugin。如果是脚本plugin,就执行脚本,如果是二进制plugin,就执行Plugin.apply(T)老的写法,解析和应用是分开的:
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0" } } apply plugin: "com.jfrog.bintray"新的写法叫plugins DSL,是合并在一起的:
plugins { id "com.jfrog.bintray" version "1.8.0" }plugins 新用法,但是plugin必须是 [Gradle plugin repository](Gradle - Plugins) 中的。
apply plugin老用法,但是更灵活。
plugins 不支持多项目 配置(subprojects, allprojects),但是支持 构建其子项目
官方文档
使用Maven的声明写法
repositories { //阿里仓库 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } //本地仓库 mavenLocal() //Maven中心仓库 mavenCentral() }