我对SonarQube和Squid(以及CheckStyle、FindBugs和PMD)是新手。我用的是SonarQube 4.1.1。和默认的“Sonar way with FindBugs”质量配置文件来评估我的一些Java项目。
在我的分析结果中,我从SQUID那里得到了一大堆相同的关键问题:
异常处理程序应提供一些上下文并保留原始异常。当处理捕获的异常时,应记录两个强制信息,或在重新引发的异常中提供这两个信息:
在我的代码中,我使用了一个记录器,例如。
catch(Exception e) {
LOG.error(SampleClass.class.getSimpleName() + ": " + e);
}
为什么这个规则被炒了?将记录异常。是不是,因为我用的不是'logger'而是'log'?
我有的第二个问题是:我可以在哪里看到和改变Squid规则,或者添加几个我自己的规则?根据我对FindBug、CheckStyle和PMD的理解,我可以编写自己的规则。鱿鱼也可以这样吗?
我相信该规则之所以被激发,是因为您记录的是来自异常e的简单toString()消息,而不是完整的堆栈跟踪。类似于
LOG.error(SampleClass.class.getSimpleName() + ": " + e, e);
才符合规则。
对于每个规则定义,SonarQube都有非常好的兼容/不兼容代码示例。在“问题”或“质量配置文件”中展开规则的名称以查看示例。
部署自定义规则(如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
在哪里可以找到用于将规则导入到Sonar的XML文件的好文档和/或模式?在http://javadocs.sonarsource.org/5.1/apidocs/org/Sonar/api/server/rule/rulesdefinitionxmlloader.html上有一些文档,但是它并不准确(例如,description标记为可选,但是Sonar如果缺少它就会失败),并且没有描述每个元素代
问题内容: 为了学习,我需要在ubuntu服务器上安装sonarqube。 我按照本教程进行了安装:http : //www.naturalborncoder.com/methodology/2015/05/27/sonarqube-on- ubuntu-14-04/ (我在代理部分之前停了下来),但我无法访问127.0.0.1:9000。从日志来看,当我启动sonarcube时,elastics
我尝试使用Jenkins上的java项目运行声纳分析,使用标准的maven sonar:sonar goal,并使用post STEP>>Execute SonarQube Scanner。我使用的maven目标是。 对于SonarQube扫描仪,我使用了下面的maven目标 SonarQube版本-7.7声纳扫描仪版本-3.3.0 Jenkins版本-2.164.3 Maven版本-3.6.1
声纳5.0.1(应用) Sonar-Runner 2.4(gradle插件) 等级2.3 Java 8(要分析的项目) Java插件3.1(声纳插件) 有没有人有什么想法?