【问题标题】:build doLast not executing on multi module build构建 doLast 未在多模块构建上执行
【发布时间】:2018-12-06 16:58:08
【问题描述】:

我有一个多模块 gradle 构建,我正在尝试聚合 jacoco 报告,但我希望它在构建完成时发生,我不想将它添加到终端中 gradle 命令的末尾。下面是我如何配置 build.gradle 的 sn-p:

subprojects {
    do stuff...
}
task jacocoRootReport(type: JacocoReport, group: 'Coverage reports') {
    configure...
}
task build {
    dependsOn subprojects.build
    doLast {
        jacocoRootReport
    }
}

如果我在 doLast 中放置一个简单的 println,它会打印它,但如果我将 println 放置在 jacoco 报告任务中,则不会打印任何内容。 我也尝试过使用 build.finalizedBy ,这导致同样缺乏执行。我做错了什么? 在子任务 build.finalizedBy 内部工作正常,但在子任务外部似乎没有任何工作。

* 编辑 * 这是根报告的实际代码。 我尝试使用 build.finalizedBy 但它在根 build.gradle 中失败它仅适用于子项目

task jacocoRootReport(type: JacocoReport, group: 'Coverage reports') {
    println 'start'
    dependsOn = subprojects.test
    additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
    sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
    classDirectories = files(subprojects.sourceSets.main.output)
    executionData = files(subprojects.jacocoTestReport.executionData)
    println 'reports'
    reports {
        html.enabled = true
        html.destination "$rootDir/build/reports/coverage/coverge-index"
        xml.enabled = false
        csv.enabled = false
    }
    println 'onlyIf'
    onlyIf = {
        true
    }
    println 'doFirst'
    doFirst {
        executionData = files(executionData.findAll {
            it.exists()
        })
    }
}

task build {
    dependsOn subprojects.build
    doLast {
        jacocoRootReport
    }
}

【问题讨论】:

  • 你的build 任务的doLast 块什么都不做:你只是得到了任务jacocoRootReport 的引用,但你什么也不做,这就是它没有被执行的原因。 (相当于写project.tasks.getByName('jacocoRootReport'))。正确的方法是使用您提到的build.finalizedBy('jacocoRootReport'),它应该可以工作。你能提供你的jacocoRootReport任务定义的代码吗?

标签: gradle build.gradle


【解决方案1】:

我将构建任务更新为依赖而不是 doLast。这就是我想要的。 如果有更好的方法来完成我想要的,请随时纠正我。

task build {
    dependsOn tasks.jacocoRootReport
}

我尝试使用 build.finalizedBy(jacocoRootReport) 得到以下错误:

根项目中的未知属性“构建”

【讨论】:

    猜你喜欢
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2011-07-24
    • 2015-05-14
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多