我正在用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
,我尝试了各种方法但失败了。
请告诉我你是否知道如何。
答案 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 {
//[...]
}