Gradle入门案例
Gradle介绍
- Gradle是一种以Groovy语言为基础的自动化构建工具
- 自动化构建本质上也是一种程序,我们开始编译时就启动这个程序,然后读取我们在 gradle 文件中配置的参数来实例化各个类,然后按照顺序依次执行对应的任务即可完成整个构建任务。
- 所以 build.gradle 文件,或者其他后缀为 gradle 的文件其实就是个配置文件,就好像 xml 一样,我们在 gradle 文件中修改各种配置参数,Gradle 通过这些参数来实例化 Project 等等就像构造器一样,只要理解了这点学习 Gradle 就会变得很容易。
Gradle作为一款基于Groovy语言的构建工具,已经吸引众多的ant,maven使用者转投gradle的怀抱,和Gradle相比,ant显得冗余复杂,maven显得有些死板落后,而gradle基于DSL语法,特点明显:简洁、灵活、可读性强。
Gradle和maven有很多相似点,gradle充分考虑到maven库的价值,在jar包管理上完全支持maven Repository,很多属性乍眼一看就能反应过来maven中对应的是什么标签,大大降低maven到gradle的迁移难度,并在构建方面改善了很多maven的不足,,同时,gradle对比maven更好的面向ant用户,使用maven时,虽然能通过plugin来跑ant的命令,但是maven在任务实现主要靠的是插件以及自身的固定框架,Gradle在定义任务方面思想与ant非常相似,做了很好的集成。
Grovvy简单语法
//介绍grovvy编程语言
println ("hello grovvy");
//grovvy中可以省略语句最末尾的分号
println ("hello grovvy")
//grovvy中可以省略括号
println "hello grovvy"
//grovvy中如何定义变量
//def是弱类型的,grovvy会自动根据情况来给变量赋予对应的类型
def i = 18;
println i
def s = "xiaoming"
println s
//定义一个集合类型
def list = ['a','b',3]
//往list中添加元素
list<<'c'
//取出list中第4个元素
println list.get(3)
//定义一个map
def map = ['key1':'value','key2':'value2'];
//向map中添加键值对
map.key3 = 'value'
//打印出key3的值
println map.get('key3')
Grovvy闭包
//grovvy中的闭包
//什么是闭包?闭包其实就是一段代码块。在gradle中,我们主要是把闭包当参数使用
//定义一个闭包
def b1 = {
println "hello b1"
}
//定义一个方法,方法里面需要闭包类型的参数
def method1(Closure closure){
closure()
}
//调用方法method1
method1 (b1)
//定义一个闭包,带参数
def b2 = {
v->
println "hello ${v}"
}
//定义一个方法,方法里面需要闭包类型的参数
def method2(Closure closure){
closure("xiaoma")
}
//调用方法method1
method2 (b2)
Gradle配置文件介绍
build.gradle
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
/*
指定所使用的仓库,mavenCentral()表示使用中央仓库,此刻项目中所需要的jar包都会默认从中央仓库下载到本地指定目录
*/
repositories {
mavenCentral()
}
/*
gradle工程中的所有jar包坐标都在dependencies属性内放置
每一个jar包的坐标都有三个基本元素构成 group name version
testRuntimeOnly表示作用域
*/
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
implementation 'spring:spring-context:1.0.2'
}
test {
useJUnitPlatform()
}