gradle构建后执行任务

时间:2015-06-16 01:09:29

标签: gradle build.gradle

我正在用gradle构建我的项目,使用以下build.gradle文件:

project('a'){
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'application'

    buildDir = 'build'

    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
    repositories {
        mavenCentral()
    }
    dependencies {
        compile 'org.slf4j:slf4j-api:1.7.7'
    } 
}

当我输入gradle build命令时,我希望gradle在构建后执行任务。

我在互联网上找到了mustRunAfter,我尝试了各种方法但失败了。

请告诉我你是否知道如何。

2 个答案:

答案 0 :(得分:53)

您需要的是finalizedBy,请参阅以下脚本:

apply plugin: 'java'

task finalize << {
    println('finally!')
}

build.finalizedBy(finalize)

Here是文档。

答案 1 :(得分:1)

现在您可以使用 BuildListener,它确实有效。下面是一个用 kotlin DSL 编写的例子

build.gradle.kts

plugins {
    id("com.android.application")
    id("kotlin-android")
    id("kotlin-kapt")
}

android {
    //[..]

    project.gradle.addBuildListener(object : BuildListener {
        override fun buildStarted(gradle: Gradle) {}

        override fun settingsEvaluated(settings: Settings) {}

        override fun projectsLoaded(gradle: Gradle) {}

        override fun projectsEvaluated(gradle: Gradle) {}

        override fun buildFinished(result: BuildResult) {
            
            // add what you need to do here
            println("finally!")
        }

    })
}

dependencies {
    //[...]
}