Sonar Eclipse插件(SonarLint)绑定的意义

Sonar是一款代码质量检查的好工具,可以方便地和Jenkins和Eclipse集成。其中在和Eclipse集成时,项目会有一个“Bind to SonarQube or SonarCloud”的选项,那这个选项是起什么作用的呢?

1、Sonar结构

SonarScaner + Sonar服务。SonarScaner负责按规则扫描代码,Sonar服务负责报告展示、以及扫描参数配置、项目管理等。其中(1)Eclipse插件SonarLint具有代码扫描和报告查看功能。

(2)使用Maven扫描,则需要通过Sonar 服务查看检查结果(报告)

2、Eclipse 插件SonarLint的绑定

这个选项,是使客户端的检查扫描器(SonarScaner)可以利用SonarQube服务上的配置。换句话说,也就是在SonarQube服务器上配置扫描规则(最简单地讲,例如:扫描哪些文件,哪些文件不扫描),使用Sonar maven扫描。

如果使用SonarLint插件的分析功能(Analyze),则只能使用SonarLint的规则配置,不能使用Sonar服务器上的规则配置。

而sonarLint似乎没法配置排除规则(Eclipse preference中配置无效(编者注:也有可能没有配正确)),这就是这里为什么要讨论这个绑定功能。

例如:

使用Eclipse 开发JAVA WEB 项目A,只需要扫描Java文件,结果扫出来一堆js, css,html的问题,怎么办呢?

(1)安装SonarLint插件

(2)在SonarQube服务器上创建项目project-a(项目ID),配置规则,在排除选项中加入**/*.js,**/*.css,**/*.htm, **/*.html。同时生成访问token,选Java语音类型,Maven构建类型,最后会给出一个maven命令

注意:这些规则是每行一个,不需要逗号分隔,写成一行。

(3)SonarLint插件绑定到SonarQube服务器,并绑定project-a项目。

(4)使用Eclipse 项目右键->Run as ->Maven 命令(从(2)中拷贝)扫描项目A的代码:

mvn sonar:sonar \
  -Dsonar.projectKey=project-a \
  -Dsonar.host.url=http://192.168.200.6:9000 \
  -Dsonar.login=ef776133b07a2194403b6505add4900bcf99f471

(5)扫描结束后,可以访问Sonar服务地址http://192.168.200.6:9000查看扫描结果。

posted @ 2019-03-08 16:59  hongweigg  阅读(38)  评论(0编辑  收藏  举报