我正在用声纳和龙目岛工作,这两个人似乎不是朋友。
@Getter
public class MyAwesomeClass {
private String string1;
private String string2;
private String string3;
...
}
上面的示例为类中的每个字段生成了一个getter方法,这要感谢@getter注释,但是sonar警告我这些字段是“单数字段”,它们只在一个方法中使用,但由于生成的getter方法,情况并非如此。
很明显,声纳并没有考虑龙目山。我的问题是,是否有可能使这些警告消失,例如使用@SuppressWarnings
注释?
即使我真的不会因为代码分析工具而使代码杂乱无章,我想你也可以使用NOSONAR注释。您的代码如下所示:
@Getter
public class MyAwesomeClass {
private String string1; // NOSONAR
private String string2; // NOSONAR
private String string3; // NOSONAR
}
在我看来不是很优雅,但它实际上是声纳功能。然后应该忽略这些行的分析。
另一个可能更好的解决方案是禁用特定规则。我想这个问题的最佳答案可以帮你解决这个问题。
这两种解决方案都有一些缺点。使用//NOSONAR
将禁用该特定行的所有规则检查。另一方面,通过禁用规则,不仅可以消除Lombok造成的误报,还可以消除真正的问题。
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报告时,我看到了不同之处。然而,当我的常规质量工作执行并向声纳发布结果时,我得到了不同(即更差)的结果。 为什么我在本地