AS--›Groovy/Gradle操作使用实例记录(持续更新)

Groovy

gradle 构建脚本使用的 groovy 语言编写.

官方地址:
http://groovy-lang.org/documentation.html

API文档地址:
http://groovy-lang.org/api.html

API扩展文档地址:
http://groovy-lang.org/gdk.html


Gradle

官方文档: https://docs.gradle.org/current/userguide/userguide.html

接口/对象 默认实现
project org.gradle.api.internal.project.DefaultProject
project.tasks org.gradle.api.internal.tasks.DefaultTaskContainer
task org.gradle.api.DefaultTask
任务类型(task type) 默认实现
type: Jar org.gradle.api.tasks.bundling.Jar
type: Copy org.gradle.api.tasks.Copy
type: Zip org.gradle.api.tasks.bundling.Zip
type: Delete org.gradle.api.tasks.Delete
type: Exec org.gradle.api.tasks.Exec
println it.class

task 官方介绍:

https://docs.gradle.org/current/dsl/org.gradle.api.Task.html


声明一个task

task _test1(){
    
}

声明一个带typetask

task _test2(type: Jar){
    
}

所有可用type

声明一个带有依赖的task

task _testTask(dependsOn: ['compileApkReleaseJavaWithJavac'], type: Jar) {

}

动态创建一个task

def newTask = project.tasks.create("newTask")
newTask.doFirst {
    println "new task first." + it.name
}
newTask.doLast {
    println "new task last." + it.name
}
project.tasks.add(newTask)

task的3个阶段

task _testTask()
    doFirst{
        println "task first."
    }

    doLast{
        println "task last."
    }

    println "task配置结束."
}

  1. 配置阶段, 任何时候都会执行
  2. First阶段, 任务运行最开始会执行
  3. Last, 任务运行最后面会执行

监听task``事件

监听task添加

task _testTask() {
    project.tasks.whenTaskAdded {
        println "添加任务:" + it.name + ":" + it.class + ":" + it
    }
}

示例

正则匹配目标task, 追加命令

task _testTask() {
    project.tasks.whenTaskAdded {
        def taskName = it.name
        if (taskName.endsWith("JavaWithJavac")) {
            def matcher = Pattern.compile("compile(.*)JavaWithJavac").matcher(taskName)

            if (matcher.find()) {
                println "匹配:" + taskName + "->" + matcher.group(1)
            }
        }
    }
}

系列Gradle操作文章

https://angcyo.blog.csdn.net/article/category/9283298


未完待续

持续更新…


群内有各(pian)种(ni)各(jin)样(qun)的大佬,等你来撩.

联系作者

点此快速加群

请使用QQ扫码加群, 小伙伴们都在等着你哦!

AS--›Groovy/Gradle操作使用实例记录(持续更新)_第1张图片

关注我的公众号, 每天都能一起玩耍哦!

AS--›Groovy/Gradle操作使用实例记录(持续更新)_第2张图片

你可能感兴趣的:(groovy,gradle,Android,Studio(AS),Gradle实用实战操作)