SonarQube代码质量静态检测
一、Sonar简介
sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告;
sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划分为5个等级;
同时,sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量;
- 开发人员在其IDE中进行编码,并使用SonarLint运行本地分析。
- 开发人员将其代码推送到他们最喜欢的SCM中:git,SVN,TFVC等。
- Continuous Integration Server会触发自动构建,并执行运行SonarQube分析所需的SonarScanner。
- 分析报告将发送到SonarQube服务器进行处理。
- SonarQube Server处理分析报告结果并将其存储在SonarQube数据库中,并在UI中显示结果。
- 开发人员通过SonarQube UI审查,评论,挑战他们的问题,以管理和减少技术债务。
- 经理从分析中接收报告。Ops使用API自动执行配置并从SonarQube提取数据。运维人员使用JMX监视SonarQube Server。
二、SonarLint
SonarLint是sonar团队开发的用于IDE的开源插件,支持eclipse、idea、visual studio、VS code四款IDE工具,开发可以在IDE上直接执行SonarLint对项目代码进行分析;
在市场中搜索SonarLint,安装该插件,在项目/文件上右键点击,下拉菜单中点击SonarLint,选择Analyze with SonarLint,这时会对整个项目/文件内的文件进行分析;
三、Sonarqube+Jenkins
sonarqube server服务在172.26.130.48服务器的/opt/sonarqube-7.8目录下;
sonarqube数据库在172.26.130.5对应的MySQL数据库下的sonar库;
访问sonarqube server服务地址:http://172.26.130.48:9000/projects,用户名:admin,密码:admin
Jenkins配置如下:
1,创建一个freestyle的项目,名称自定义;也可以在现有项目中复制一个;
2,配置Git
3,配置build信息;
#sonar工程标识,随意输入不重复有代表意义即可
sonar.projectKey=bi_build_sonar
#sonar工程标识,随意输入不重复有代表意义即可
sonar.projectName=bi_build_sonar
#sonar工程版本号
sonar.projectVersion=1.0
#源代码路径,依据需要可在$WORKSPACE后加入目标路径,缩小分析范围;
sonar.sources=$WORKSPACE
#class文件路径,依据需要可在$WORKSPACE后加入目标路径,缩小分析范围;
sonar.java.binaries=$WORKSPACE
4,选择分支后执行
执行完成后,点击SonarQube,跳转SonarQube服务器,显示分析报告