代码之家  ›  专栏  ›  技术社区  ›  punchman

Gradle:在某些任务中按顺序执行任务

  •  0
  • punchman  · 技术社区  · 8 年前

    我有一个库,其中包含3个lib模块和1个示例模块。在部署任务之前,我想执行一些其他任务。在命令行中,如下所示: ./gradlew -x:example:clean -x:example:check -x:example:uploadArchives clean check :androidLib:assembleRelease uploadArchives .

    我想编写gradle task来顺序地执行除示例模块之外的所有模块的所有任务我可以做到: ./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() 已弃用,它只执行第一个任务而忽略任何任务。

    1 回复  |  直到 8 年前
        1
  •  1
  •   switch201    8 年前

    你可以用 dependsOn 在你的分级任务中确保你的任务按正确的顺序运行

    task task1{
        dependsOn task2
        //Task one code
    }
    
    task2{
        dependsOn task3
        //task 3 code
    }
    
    task3{
        //task3 code
    }
    

    所以在这个例子中,如果你调用task1,首先执行task 3,然后执行task2,最后执行task1,但是你只需要调用task1。