将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
任何帮助都将不胜感激。
答案 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>
注意:获取最新版本的示例。