gpt4 book ai didi

java - Sonarqube gradle 插件覆盖 Lombok

转载 作者:行者123 更新时间:2023-12-02 02:17:14 25 4
gpt4 key购买 nike

我在 gradle 项目中使用 Sonarqube 和 Jacoco 插件有一个用 Lombok 的 @Data 注释的类。

源代码已发布here on github

我有一个本地运行的 sonarqube server作为 docker 容器运行,像这样开始:

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube  

我添加了一个“lombok.config”文件,要求它按照全局配置键部分 here 将 @Lombok.Generated 注释添加到其生成的代码中在文档中。

lombok.addLombokGeneratedAnnotation = true

我有以下 Sonar 条件配置。

enter image description here

当我第一次运行 sonarqube 目标时,它报告该项目通过了。

enter image description here

如果我随后将 lombok.addLombokGenerateAnnotation 切换为 false,并重新运行 sonarqube 目标,它会报告出现故障:

enter image description here

如果我随后将 lombok.addLombokGenerateAnnotation 切换回 true,并再次重新运行,sonarqube 会报告该项目仍然失败。而且我无法让项目再次通过。

然后,我更改了 build.gradle 文件中的组名称,以强制 sonarqube gradle 插件在 Sonarqube 服务器中创建一个新项目。当我这样做时,项目再次通过。

在此过程中我从未更改过任何源代码。

请问有人知道为什么 Sonarqube 会这样吗?

最佳答案

I've never changed any of the source code during this process.

哦,但是你有。或者更确切地说,Lombok 通过在代码中插入(或不插入)注释来实现。

您使用的质量门仅查看“新代码”。在您的第一次分析中,没有代码是新的,因此没有任何代码值得考虑。然后你调整你的 Lombok 设置,重新生成并重新分析。 Lombok 显然对您的代码进行了一些更改。我从未使用过 Lombok,因此无法详细说明此处发生的情况,但您可以单击项目主页上的新覆盖率相关指标来获取文件列表。深入查看文件以查看其中被视为"new"的内容(黄色突出显示)。查看边缘标记(红色、绿色、黄色条纹)以了解哪些内容被视为被覆盖。

注意 您的质量门目前要求新代码中条件的覆盖率达到 99%。这是不现实的,而且已经过了 yield 递减的阶段。您应该重新考虑这个值。 IMO 85-95% 更为现实,具体取决于您的团队。

关于java - Sonarqube gradle 插件覆盖 Lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141143/

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