什么是Gradle?
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。Gradle就是工程的管理,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作。
安装Gradle
自行百度
Idea中创建Gradle
安装后记得将自己的Gradle位置告诉Idea,并且在创建项目的时候选择使用本地的Gradle
因为Gradle是基于Grovvy创建的,因此再学习Gradle之前我们要简单的了解一下Grovvy的语法。
Groovy语法
//Grovvy中可以省略括号和分号
println "我是你爹"
//Grovvy中创建变量
def i =10
println i
//创建复杂变量
def list=[1,2,3,4]
//向集合中添加一个元素
list << 5
//检测是否成功添加到这个元素
println list
//创建一个map
def map=['key1':'a','key2':'b']
//添加一个元素
map.key3 = 'c'
println map
//Groovy中的闭包
//什么是闭包,闭包其实就是一段代码块,在Gradle中,我们主要是把闭包当作参数传
def b1={
println "我是你爹"
}
//定义一个用于调用闭包的方法
def method1(Closure closure){
closure();
}
//执行测试时
method1 (b1)
//定义一个带参数的闭包
def b2={
it->
println "hello ${it}"
}
//定义一个调用带参数的闭包的方法
def method2(Closure closure){
closure("我是你爹")
}
//执行测试
method2 (b2)
Gradle配置
/**
* 指定Java
*/
plugins {
id 'java'
}
/**
* 代表自己项目的标识
*/
group 'com.zzm'
version '1.0-SNAPSHOT'
/**
* 指定仓库的路径
* mavenCentral()表示中央仓库,此刻,项目中所需要的jar包都需要从中央仓库下载到本地指定的目录
*/
repositories {
mavenCentral()
}
/**
* Gradle项目的所有的依赖都是在这下面放置的
* 每一个jar包都有三个属性
* group,name,version
* testCompile表示的是我们在测试的时候起作用,该属性是jar包的作用域
* 我们在添加依赖的时候都要加上该属性的作用域
*/
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
// https://mvnrepository.com/artifact/org.projectlombok/lombok
compile group: 'org.projectlombok', name: 'lombok', version: '1.18.12'
}
如果想要添加依赖的话,那么我们就在Maven中央仓库中选择想要下载的依赖,然后选择Gradle即可
然后复制到dependencies中即可
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
// https://mvnrepository.com/artifact/org.projectlombok/lombok
compile group: 'org.projectlombok', name: 'lombok', version: '1.18.12'
}
修改Gradle仓库为本地仓库位置
添加系统环境变量
变量的值为本地仓库的地址
然后在配置文件中加上
/**
* 指定仓库的路径
* mavenCentral()表示中央仓库,此刻,项目中所需要的jar包都需要从中央仓库下载到本地指定的目录
* 此时这种表示的就是先去本地查,如果没有再去中央仓库下载
*/
repositories {
mavenLocal()
mavenCentral()
}
Gradle实现阿里云加速下载
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://mvnrepository.com/artifact/com.octo.captcha/jcaptcha'}
mavenCentral()
}
Gradle创建父子工程
和maven的创建方式实一样的,但是如果想使用本项目中模块的依赖的话,那么我们需要
compile project(":你的模块的名称")