【问题标题】:How do I get sonarqube to depend on jacocoTestReport?如何让 sonarqube 依赖 jacocoTestReport?
【发布时间】:2016-08-25 01:02:17
【问题描述】:

为什么这不起作用,我怎样才能得到我正在寻找的结果?具体来说,我希望 jacoco 在 sonarqube 之前运行。

subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'eclipse'
    apply plugin: 'jacoco'

    test {
        jacoco {
            excludes = [...,
                         "javolution.*"]
        }
    }

    jacocoTestReport {
        dependsOn tasks.withType(Test)//This makes integrationTests go. 
    }

//This is the part that I can't get to work:
project.tasks["sonarqube"].dependsOn jacocoTestReport
}

错误是:

* Where:
Build file '/dev/abc/build.gradle' line: 92

* What went wrong:
A problem occurred evaluating root project 'abc'.
> Task with name 'sonarqube' not found in project ':thingamajig'.

当然thingamajig 是一个空的父目录。没有build.gradle,但它有许多子目录确实有build.gradle。我已经尝试了很多方法,比如检查任务图并在调用project.tasks.getByName() 时捕获异常,我猜是时候下注了。

【问题讨论】:

    标签: gradle sonarqube jacoco


    【解决方案1】:

    子项目没有自己的声纳运行器任务。使根项目 sonar runner 任务依赖于子项目 jacocoTestReport 任务。

    在我的build.gradle 中看起来像

    if (hasProperty('sonarAnalyseOnly') && sonarAnalyseOnly.toBoolean()) {
       tasks.sonarRunner.dependsOn = []
    } else {
       tasks.sonarRunner.dependsOn {
          project.subprojects.findAll { !it.sonarRunner.skipProject }.collect {
             [
                   it.tasks.compileSharedJava,
                   it.tasks.compileServerJava,
                   it.tasks.compileGuiJava,
                   it.tasks.integTest,
                   it.tasks.jacocoMerge
             ]
          }.flatten()
       }
    }
    

    【讨论】:

    • 同样的错误,恐怕。我添加了 subproject -> 并使用了 subproject.tasks["sonarqube"].dependsOn jacocoTestReport
    • 我添加了 println subProject.name,它打印的内容几乎符合我的预期。子项目的名称。
    • 提醒:thingamajig 完全是空的。那里甚至没有 build.gradle 文件,但它仍然被找到并且失败了。
    • rootProject.tasks["sonarqube"].dependsOn jacocoTestReport 似乎至少部分有效。还在看着它。我认为也许 sonarqube 任务只是通过设计添加到 root 中。我注意到你不能在子项目中访问它。
    • 我认为我没有 sonarRunner。我正在使用 org.sonarqube 插件。
    猜你喜欢
    • 1970-01-01
    • 2018-12-13
    • 2016-11-09
    • 1970-01-01
    • 2015-11-29
    • 2016-08-21
    • 2022-09-28
    • 2017-12-09
    • 2016-08-11
    相关资源
    最近更新 更多