控制Gradle println执行时机

控制Gradle println执行时机

问题现象

初次编写Gradle task打印日志,无论对应task是否执行,该task中println总是执行,跟正常的Java代码认知不一致。

task hello {
    println "do sth before execute"
     // execute sth
    println "do sth after execute"
}

无论该任务是否执行,都会进行打印,为什么呢?

解决办法

话不多说,直接上官网例子,有问题一定要去官网获取第一手资料!!!
https://docs.gradle.org/current/userguide/build_lifecycle.html#header

settings.gradle

println 'This is executed during the initialization phase.'

build.gradle

println 'This is executed during the configuration phase.'

task configured {
    println 'This is also executed during the configuration phase.'
}

task test {
    doLast {
        println 'This is executed during the execution phase.'
    }
}

task testBoth {
	doFirst {
	  println 'This is executed first during the execution phase.'
	}
	doLast {
	  println 'This is executed last during the execution phase.'
	}
	println 'This is executed during the configuration phase as well.'
}

Output of gradle test testBoth

> gradle test testBoth
This is executed during the initialization phase.

> Configure project :
This is executed during the configuration phase.
This is also executed during the configuration phase.
This is executed during the configuration phase as well.

> Task :test
This is executed during the execution phase.

> Task :testBoth
This is executed first during the execution phase.
This is executed last during the execution phase.

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

参考

https://stackoverflow.com/questions/23288470/gradle-always-does-println-from-any-task
Gradle任务详述-w3school

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章