gradle 构建后执行任务

gradle execute task after build

我正在使用 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,尝试了多种方法都失败了

如果你知道怎么做请告诉我。

你需要的是finalizedBy,看下面的脚本:

apply plugin: 'java'

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

build.finalizedBy(finalize)

Here 是文档。

现在您可以使用 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 {
    //[...]
}