gpt4 book ai didi

java - 使用 Lombok、Gradle、Jacoco 和 Sonar 过滤覆盖范围

转载 作者:行者123 更新时间:2023-11-30 06:45:40 25 4
gpt4 key购买 nike

我在 Java 项目上使用 Gradle 4.4 和 JaCoCo 0.8.0,并在 Sonar 上使用 SonarJava 5.0.1。

我有一个用 lombok 的 @Value@Builder 注释的类。

我在 build.gradle 中的 JaCoCo 配置如下所示:

jacoco {
toolVersion = "0.8.0"
reportsDir = file("$buildDir/reports/jacoco")
}

jacocoTestReport.doFirst{
classDirectories = files("buildDir/classes")
}

task jacocoReport(type: JacocoReport){
sourceSets sourceSets.main
executionData test, integrationTest
}

此外,我有 lombok.confi 文件,其属性 lombok.addLombokGenerateAnnotation = true,并且生成的内容实际上在构建/类中具有 @lombok.Generate 注释。

但是, Sonar 的覆盖范围仍然很低。它报告了大量的条件和线路。

最佳答案

announcement of release of JaCoCo version 0.8.0 中所述:

Please Note

Tools that directly read exec files (which is not a final report) and embed JaCoCo for generation of report will provide filtering functionality only after they updated to this version of JaCoCo.

So please follow/wait/etc respective vendors such as SonarQube - https://jira.sonarsource.com/browse/SONARJAVA-2608

Reports generated by corresponding version (0.8.0) of integrations developed as part of JaCoCo project by us (Ant Tasks, Maven Plugin and Command Line Interface) provide filtering functionality.

With Gradle JaCoCo Plugin you can select both runtime and version for "JaCoCoReport" task using "toolVersion" - https://docs.gradle.org/current/userguide/jacoco_plugin.html

JaCoCo changelog 中也有说明。 :

Note: Tools that directly read exec files and embed JaCoCo for this (such as SonarQube or Jenkins) will provide filtering functionality only after they updated to this version of JaCoCo.

截至今天(2018 年 1 月 29 日)已修复 https://jira.sonarsource.com/browse/SONARJAVA-2608应该是在尚未发布的 SonarJava 插件版本 5.1 中。

综上所述:Gradle生成的报告应该已经被过滤,SonarQube生成的报告将在SonarJava升级后被过滤。

关于java - 使用 Lombok、Gradle、Jacoco 和 Sonar 过滤覆盖范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501606/

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