gpt4 book ai didi

java - Sonarqube 没有同时选择 Kotlin 和 Java Coverage gradle 项目

转载 作者:行者123 更新时间:2023-11-30 05:23:43 25 4
gpt4 key购买 nike

不是一个混合源 Java 和 Kotlin 的 Android 项目。尽管许多人都遇到了覆盖范围、kotlin 和 Sonar 方面的问题。我没有找到适合此案例的解决方案。

Sonarqube 没有同时获取 Jacoco 生成的 Kotlin 和 Java 覆盖范围:

  • Gradle 4.8
  • Java 1.8
  • Kotlin 1.3.50

它获取 Java 类,但所有 Kotlin 类都会被忽略。我已经在 gradle 文件中应用了所有必需的插件:

allprojects {
apply plugin: 'jacoco'
apply plugin: 'java'
apply plugin: 'org.sonarqube'
apply plugin: 'kotlin'

...
}

最佳答案

首先确保您的 jacocoTestReport 创建一个 xml 报告:

jacocoTestReport {
reports {
xml {
enabled true
}
xml.destination "build/reports/jacocoTestReport.xml"
}
}

然后,您需要使用 sonaqube 中所有项目的 xmlReportPaths 属性将这些 xml 报告强制导入 Sonar 。

您可以在此处看到多个路径,以防您的项目中有多个子项目,并且这些子项目也具有混合源 Java/Kotlin。

sonarqube {
properties {
property "sonar.java.coveragePlugin", "jacoco"
property("sonar.coverage.jacoco.xmlReportPaths", "../../build/reports/jacocoTestReport.xml,../build/reports/jacocoTestReport.xml")
}
}

使用该 Sonar 将考虑所有 xml 报告并生成整个覆盖范围。

关于java - Sonarqube 没有同时选择 Kotlin 和 Java Coverage gradle 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59076853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com