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查看扫描结果。