gradle (groovy)及常见命令(二)

某个 task 内部执行顺序

version = '0.1-SNAPSHOT'
task printVersion {
    group "test"
    doFirst {
        println "Before reading the project version"
    }
    doLast {
        println "Version: $version"
    }
}
/**先添加的doFirst动作后执行,先添加的doLast动作先执行*/
printVersion.doFirst { println "Second action" }
printVersion.doFirst { println "First action" }
printVersion.doLast { println "Not Last action" }
printVersion.doLast { println "Last action" }

//打印结果:
//Executing tasks: [printVersion]
//> Task :app:printVersion
//First action
//Second action
//Before reading the project version
//Version: 0.1-SNAPSHOT
//Not Last action
//Last action

可见 : 在task为 printVersion的执行中doFirst、doLast可调整执行顺序

gradle 变量的定义和引用:

gradle.properties:

key3=value3
key4=4

build.gradle :

//build.gradle脚本中可以直接使用上述定义的两个变量:
/**直接引用gradle.properties文件中定义的属性  $key3 */
project.ext.key1 ='value1'
ext {
    key2 =2
}

task printGradleProperty  {
    group "testTask"
    doLast {
        println "value1 : $key1"
        println "value2 : $key2"
        println "value3 : $key3"
        println "value4 : $key4"
    }
}
//> Task :printGradleProperty
//value1 : value1
//value2 : 2
//value3 : value3
//value4 : 4

task执行顺序:多个dependsOn

task task2{
    println "task2"
}


task task3{
    println "task3"
}


task task4{
    println "task4"
}


task task1(dependsOn:[task2,task3,task4]){
    println "task1"
    doFirst{
        println "task1 first"
    }
    doLast{
        println "task1 last"
    }
}
//Executing tasks: [task1]
//
//
//> Configure project :app
//task2
//task3
//task4
//task1
//
//> Task :app:task2 UP-TO-DATE
//> Task :app:task3 UP-TO-DATE
//> Task :app:task4 UP-TO-DATE
//
//> Task :app:task1
//task1 first
//task1 last

task执行顺序 : dependsOn方式


task task11 {
    group 'test'
    println "task11"
}

//方式1: 通过()传入
tasks.create(name: 'task22', dependsOn: task11) {
    group 'test'
    description 'task22'
    println "task22"
    doLast {
        println "task22 doLast"
    }
}

//方式2: 在{}中设定
tasks.create("task33") {
    group 'test'
    description 'task33'
    dependsOn task22
    println "task33"
    enabled false
    doLast {
        println "task33 doLast"
    }
}

//方式3: 在{}外设定
task task44() {
    group 'test'
    description 'task44'
    println "task44"
    doFirst {
        println "task44 doFirst"
    }
    doLast {
        println "task44 doLast"
    }
}
task44.dependsOn task33
task44.onlyIf {
    task33.enabled
}

//enable : 设为true
//Executing tasks: [task44]
//
//
//> Configure project :app
//task11
//task22
//task33
//task44
//
//> Task :app:task11 UP-TO-DATE
//
//> Task :app:task22
//task22 doLast
//
//> Task :app:task33
//task33 doLast
//
//> Task :app:task44
//task44 doFirst
//task44 doLast

//enable : 设为false
//Executing tasks: [task44]
//
//
//> Configure project :app
//task11
//task22
//task33
//task44
//
//> Task :app:task11 UP-TO-DATE
//
//> Task :app:task22
//task22 doLast
//
//> Task :app:task33 SKIPPED
//> Task :app:task44 SKIPPED

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值