Gradle学习笔记-使用kotlin编写gradle脚本
1、到官网下载安装,配置环境变量
https://gradle.org/
点击Binary-only,下载压缩包,解压并配置环境变量(bin目录)

在cmd测试gradle是否配置成功

2、入门演示
创建新工程

(1)修改gradle -> wrapper -> gradle-wrapper.properties
修改 distributionUrl为本地的gradle压缩包地址
( 2 )修改build.gradle的文件名为build.gradle.kts
这样就可以使用kotlin来编写gradle脚本了。
(3)重启IDE 为了防止出现一些问题 ok,工程配置完成,接下来我们在build.gradle.kts中写点东西
plugins{
application //使用构建工具,这个构建工具就是一个应用程序的名字
}
application{
mainClassName = "Main" //程序主入口
}
Tips:打开gradle面板

程序示范

3.Gradle的灵魂:Project 和 Task
概念
Gradle本身的领域对象主要有Project和Task

Project为Task提供了执行的容器和上下文
Task案例

Task的依赖

Task的生命周期
扫描&执行
扫描时就会执行打印操作。(当点击closeDoor task的时候,依次打印出“关冰箱门”,“开冰箱门”,“放入大象”,这显然是不符合我们定义的dependsOn的,这便是Task的扫描生命周期。)

要想在Task运行的时候在进行打印操作,那么就需要使用doFirst函数还包含代码内容。(加上dofirst函数,代码运行逻辑正常。)

Tasks任务集
多个任务的合集就是任务集
tasks{
"opendoor"{
}
"putelephont"{
}.dependsOn("opendoor")
"closedoor"{
}.dependsOn("putelephont")
}
Task的默认属性
task("println"){
project.properties.forEach{
t, any ->
println("$t:$any")
}
}
Task默认任务
task("println"){
project.properties.forEach{
t, any ->
println("$t:$any")
}
}
defaultTasks("println")
//这样,当在Terminal输入:gradle 的时候就会默认的输出任务“println”的内容
4.Gradle增量式更新
一般来说,代码发生变化之后进行编译会将所有的代码都给编译一遍,而Gradle支持的增量式更新就是只编译代码有改动的部分,大大提高了编译的效率。
5.Gradle常用插件
什么是插件:插件是包含一个或多个任务的合集
application插件:就是编译出一个程序,可以是kotlin应用程序,也可是java应用程序
java插件:只能编译出java应用程序
war插件:war包,放到tomcat中运行的
