我有一个库,其中包含3个lib模块和1个示例模块。在部署任务之前,我想执行一些其他任务。在命令行中,如下所示: ./gradlew -x:example:clean -x:example:check -x:example:uploadArchives clean check :androidLib:assembleRelease uploadArchives .
./gradlew -x:example:clean -x:example:check -x:example:uploadArchives clean check :androidLib:assembleRelease uploadArchives
我想编写gradle task来顺序地执行除示例模块之外的所有模块的所有任务我可以做到: ./gradlew deployAll 是的。我该怎么做?
./gradlew deployAll
我试着这样做:
task deployAll { doLast { subprojects { if(it.plugins.withType(com.android.build.gradle.AppPlugin)) return it.tasks.getByName('clean').execute() it.tasks.getByName('check').execute() ... } } }
但是 execute() 已弃用,它只执行第一个任务而忽略任何任务。
execute()
你可以用 dependsOn 在你的分级任务中确保你的任务按正确的顺序运行
dependsOn
task task1{ dependsOn task2 //Task one code } task2{ dependsOn task3 //task 3 code } task3{ //task3 code }
所以在这个例子中,如果你调用task1,首先执行task 3,然后执行task2,最后执行task1,但是你只需要调用task1。