工具箱之 代码分析利器SonarQube
本文编写时SonarQube
的Community Edition
版本是8.3.1
简介
SonarQube是一个静态分析项目的工具,并且是开源产品(sonarqube github address)。使用SonarQube静态分析,可以分析项目的可靠性,安全性和可维护性。目前SonarQube已支持20多种语言
使用SonarQube可以帮助我们构建更优秀的项目。
安装使用SonarQube
SonarQube是B/S架构类型的产品,首先我们需要安装SonarQube
-
下载安装
进入SonarQube下载网页,选择Community Edition版本下载,解压,然后进入${SonarQube}/bin/${os-type}/
路径下,我是在Windows下安装,启动sonarqube-8.3.1.34397\bin\windows-x86-64\StartSonar.bat
文件,然后在浏览器访问http://localhost:9000/
,默认用户名密码为admin/admin
。注1:SonarQube默认是H2的嵌入式数据库,仅仅用于试用,如果想让数据存储更通用且具有扩展,可以自己配置
Oracle/PostgreSQL/Microsoft SQLServer/SQL Azure
(不幸的是SonarQube7.9版本后不再支持MySQL作为数据存储了)。注2:启动SonarQube时要以非root账户启动,因为SonarQube使用了
elasticsearch
,而elasticsearch不可以root启动,所以需要新建新的账户用来运行SonarQube。 -
IDEA插件使用
Intellij IDEA中可以采用插件的方式使用Sonar,在IDEA中搜索插件
SonarLint
,安装重启IDEA,鼠标右键点击既有Analyze with SonarLint
选项选中后就会在IDEA中显示出分析结果
SonarLint虽然可以直接配置SonarQube地址,但是仅仅只能拉取SonarQube的规则分析本地代码,并不能把本地分析结果上传至SonarQube
如果想要在Web端查看代码分析结果,最好是使用下面介绍的Maven方式
-
Maven使用
首先在Maven的配置文件(
${maven_home}/conf/settings.xml
)中pluginGroups
标签下添加<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
然后在
profiles
标签下添加<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.host.url>http://localhost:9000</sonar.host.url> </properties> </profile>
然后使用maven命令执行分析
mvn clean verify sonar:sonar 或 mvn clean install mvn sonar:sonar
然后登陆SonarQube即可查看分析结果
SonarQube搭配Maven使用官方教程。
注:Maven需要3.x版本。