[老实李] Gradle学习笔记-使用kotlin编写gradle脚本

1、到官网下载安装,配置环境变量
https://gradle.org/
点击Binary-only,下载压缩包,解压并配置环境变量(bin目录)

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 Image.png

在cmd测试gradle是否配置成功

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 Image.png

2、入门演示
创建新工程

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 Image.png

(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面板

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 Image.png

程序示范,创建一个Main的java类,打印个“Hello gradle”。因为之前已经在build.gradle.kts文件下写了mainClassName就是我们创建的Main.java类,点击gradle面板上的run方法就会执行Main.java中的main方法,

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

点击distZip就会在build文件夹下生成一个zip压缩包。这个压缩包解压之后就是一个jar包和一个在windows平台下执行的.bat文件,还有一个在Linux系统下执行的文件。可以再当前文件夹下直接CMD中执行xxx.bat就会打印出“Hello gradle”

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

3.Gradle的灵魂:Project 和 Task
概念:
Gradle本身的领域对象主要有Project和Task
Project为Task提供了执行的容器和上下文
Task案例,Task的依赖

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

Task的生命周期

扫描&执行

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

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

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

《[老实李] Gradle学习笔记-使用kotlin编写gradle脚本》 image.png

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应用程序,我们刚开始做的hello gradle就是用的这个
java插件:只能编译出java应用程序
war插件:war包,放到tomcat中运行的

    原文作者:老实李
    原文地址: https://www.jianshu.com/p/540eb9ba5f83
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞