当前位置: 首页 > 知识库问答 >
问题:

声纳“奇异场”规则与龙目格特定律相矛盾

冀啸
2023-03-14

我正在用声纳和龙目岛工作,这两个人似乎不是朋友。

@Getter
public class MyAwesomeClass {
    private String string1;
    private String string2;
    private String string3;
    ...
}

上面的示例为类中的每个字段生成了一个getter方法,这要感谢@getter注释,但是sonar警告我这些字段是“单数字段”,它们只在一个方法中使用,但由于生成的getter方法,情况并非如此。

很明显,声纳并没有考虑龙目山。我的问题是,是否有可能使这些警告消失,例如使用@SuppressWarnings注释?

共有2个答案

吴丁雷
2023-03-14

即使我真的不会因为代码分析工具而使代码杂乱无章,我想你也可以使用NOSONAR注释。您的代码如下所示:

@Getter
public class MyAwesomeClass {
    private String string1; // NOSONAR
    private String string2; // NOSONAR
    private String string3; // NOSONAR
}

在我看来不是很优雅,但它实际上是声纳功能。然后应该忽略这些行的分析。

另一个可能更好的解决方案是禁用特定规则。我想这个问题的最佳答案可以帮你解决这个问题。

这两种解决方案都有一些缺点。使用//NOSONAR将禁用该特定行的所有规则检查。另一方面,通过禁用规则,不仅可以消除Lombok造成的误报,还可以消除真正的问题。

宋唯
2023-03-14

SonarQuebe 5.0.X添加Lombok补丁,它适用于Lombok的Getter。

对于SonarQuebe 4.5。十、 如果使用sonar-java-2.4,您可以在此处找到修补程序:https://github.com/SonarSource/sonar-java/compare/2.4...liudongmiao:patch-龙目-2.4

您也可以从这里下载二进制文件:https://github.com/liudongmiao/sonar-java/releases/tag/2.4-lombok

 类似资料:
  • 在哪里可以找到用于将规则导入到Sonar的XML文件的好文档和/或模式?在http://javadocs.sonarsource.org/5.1/apidocs/org/Sonar/api/server/rule/rulesdefinitionxmlloader.html上有一些文档,但是它并不准确(例如,description标记为可选,但是Sonar如果缺少它就会失败),并且没有描述每个元素代

  • 部署自定义规则(如https://github.com/sonarsource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/useLessimportcheck.java)后,启动Sonarqube4.2时,在sonar启动期间引发以下异常: 上面提到的类应该在sslr-core-1.19.2.jar

  • 声纳5.0.1(应用) Sonar-Runner 2.4(gradle插件) 等级2.3 Java 8(要分析的项目) Java插件3.1(声纳插件) 有没有人有什么想法?

  • 使用ESLint是否可以忽略整个目录的一个特定规则? 在我的例子中,我想忽略为一个名为的目录

  • 我对SonarQube和Squid(以及CheckStyle、FindBugs和PMD)是新手。我用的是SonarQube 4.1.1。和默认的“Sonar way with FindBugs”质量配置文件来评估我的一些Java项目。 在我的分析结果中,我从SQUID那里得到了一大堆相同的关键问题: 异常处理程序应提供一些上下文并保留原始异常。当处理捕获的异常时,应记录两个强制信息,或在重新引发的

  • 最新的Jacoco插件(仍然是快照版本,)有一个很好的新特性,可以过滤掉Lombok生成的代码(https://github.com/Jacoco/Jacoco/wiki/filteringoptions)。我们所需要做的就是在存储库的根添加一个文件: 当我在内部生成Jacoco报告时,我看到了不同之处。然而,当我的常规质量工作执行并向声纳发布结果时,我得到了不同(即更差)的结果。 为什么我在本地