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 {
//[...]
}
我正在使用 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 {
//[...]
}