在自定义任务

时间:2016-01-06 16:40:39

标签: android gradle android-gradle build.gradle

我想删除项目makefile并编写一些不错的gradle任务。 我需要按以下顺序执行以下任务:

  1. 清洁
  2. 增量版
  3. 构建
  4. 上传
  5. #p,#3和#4是android和plugin(bintray)的任务,而#2是自定义任务。以下是我到目前为止的情况:

    task releaseMajor {
        doLast {
            clean.execute()
            build.execute()
            incrementVersion.execute()
            bintrayUpload.execute()
        }
    }
    

    运行顺序不是很好,因为我认为clean是在build之后运行的。 binrayUpload正在运行,没有味道(release)。我也尝试使用dependsOn但没有成功(订单不起作用)。

    我无法在Gradle doc中找到如何正确执行此操作。当从正确的顺序执行时,从CLI开始,一切都运行良好。

2 个答案:

答案 0 :(得分:2)

使用mustRunAfterfinalizedBy进行更精细的订单控制:

task releaseMajor (dependsOn: ['clean', 'build', 'incrementVersion', 'bintrayUpload'])
build.mustRunAfter clean
incrementVersion.mustRunAfter build
bintrayUpload.mustRunAfter incrementVersion

答案 1 :(得分:0)

试过这个

task clean {
    println 'clean task executing'
}
task incrementVersion (dependsOn:"clean"){
    println 'incrementVersion task executing'
}
task building (dependsOn:"incrementVersion"){
    println 'build task executing'
}
task bintrayUpload (dependsOn:"building") {
    println 'bintrayUpload task executing'
}

输出

clean task executing
incrementVersion task executing
build task executing
bintrayUpload task executing

并执行./gradlew bintryUpload