SonarQube 5.2 - 未针对自定义Java规则锁定的问题

时间:2015-12-15 17:58:47

标签: sonarqube sonar-runner sonarqube5.2

将SonarQube 5.2与Sonar-Java-Plugin 3.8配合使用,并进行分析使用Sonar-Runner 2.4。

插件和java自定义示例从git(https://github.com/SonarSource/sonar-examples/tree/master/plugins/java-custom-rules)下载,在服务器上构建和部署,规则在服务器上可见。在“Sonar Way”配置文件下使用Web激活规则(默认情况下)。还会创建一个新的测试配置文件,并在其中添加规则“避免方法名称中的品牌”,并将项目与其关联。

在分析来自(/ src / test / files)的示例java代码时,所有默认java规则中的问题都会锁定在服务器上,但不会锁定自定义规则的问题。日志中也没有明显的错误。

sonar-runner.properties

function init() {
    // Other code (not shown)

    // DOM event (directly on canvas)
    canvas.addEventListener("click", function() { 
        window.open(window.clickTag); 
    }, false);

    // OR
    // EaselJS events (on the EaselJS stage)
    stage.on("stagemouseup" ,function(event) {
        window.open(window.clickTag);
    });
}

以下是分析日志:

sonar.host.url=http://localhost:9000
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar52?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=root
sonar.jdbc.password=ChangeIt
sonar.projectKey=TestSonarCustomRules
sonar.projectName=TestSonarCustomRules
sonar.projectVersion=1.0
sonar.sources=E:/Sonar Example/sonar-examples-master/plugins/java-custom-rules/src/test/files/

声纳,访问和包装日志都是干净的。

来自SonarQube网站的图片显示了 AvoidBrandInMethodNamesChecks 的问题,其中所有默认问题都已锁定,但未锁定针对自定义规则的问题: Issues for AvoidBrandInMethodNamesCheck

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

在使用verbose / DEBUG的日志记录级别进行分析时,未执行自定义插件代码中的调试语句。

使用SonarQube 5.1 / 5.2 / 5.3对数据库默认嵌入式H2 / PostgreSQL 9.5进行分析时,行为相同

答案 1 :(得分:0)

终于工作了。我使用的是错误版本的示例。我的java-custom-rules的pom.xml文件没有以下内容:

<dependency>
  <groupId>org.sonarsource.java</groupId>
  <artifactId>java-squid</artifactId>
  <version>${java.plugin.version}</version>
</dependency>

注意:获取最新版本的示例。