首页 > 解决方案 > 如何在 gradle 中使用 init 脚本配置 jacocoTestReport

问题描述

我正在尝试扩展现有的 build.gradle 以便它更新 jacocoTestReport 以便生成 XML 报告,因为它们现在是 SonarQube 所需要的

// allprojects {
// initscript {
rootProject {
  plugins {
    id 'jacoco'
  }
  //apply plugin: 'jacoco'
  jacocoTestReport {
    reports {
      xml.enabled = true
      html.enabled = true
    }
  }
}

我尝试使用./gradlew -I jacoco.gradle check,但出现错误,例如

Could not find method plugins() for arguments [init_4poyb2mng02b0u77g0shf960p$_run_closure1$_closure2@1821f380] on root project 'template-ms' of type org.gradle.api.Project.

标签: javagradlejacoco

解决方案


在 Gradle Jacoco 中使用以下答案- 找不到方法 jacocoTestReport()这表明java需要应用插件这是结果

allprojects {
  apply plugin: 'java'
  apply plugin: 'jacoco'
  jacocoTestReport {
    reports {
      xml.enabled = true
      html.enabled = true
    }
  }
}

并且./gradlew -I jacoco.gradle check jacocoTestReport现在可以正常工作

另外作为奖励,我能够添加依赖项

allprojects {
  apply plugin: 'java'
  apply plugin: 'jacoco'
  jacocoTestReport {
    reports {
      xml.enabled = true
      html.enabled = true
    }
  }
  check.dependsOn(jacocoTestReport)
}

所以开发者只需要做./gradlew -I jacoco.gradle check


推荐阅读