【问题标题】:gradle execute task after build构建后gradle执行任务
【发布时间】:2015-08-31 16:01:33
【问题描述】:

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

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

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

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

    apply plugin: 'java'
    
    task finalize {
        doLast {
           println('finally!')
        }
    }
    
    build.finalizedBy(finalize)
    

    Here 是文档。

    【讨论】:

    • distributions { main{ contents{ into('lib'){ } into('bin'){ } } } } 使用此源想将 jar 文件移动到 lib 文件夹 lib / test文件夹。
    • 注意,这(可能)不适用于任务中的dolast。 (我认为这是因为它与 finalize 的隐含 gradle 顺序冲突。)
    • << 是做什么的?
    • @wilmol 这相当于doLast - 现在已弃用。
    • 谢谢“a.t.”。这就是我需要的提示!
    【解决方案2】:

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

    【讨论】:

    • 如何在这个块中运行另一个任务?例如./gradlew ktlintCheck
    猜你喜欢
    • 2013-09-03
    • 2021-10-28
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多