简介
SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。
通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流行代码规则。
SonarQube服务器端安装
SonarQube分为两部分安装,服务器端安装及客户端安装
服务器端
服务器端安装需要JDK及Mysql,网上安装教程很多,不赘述。
可以参考这篇:https://www.cnblogs.com/qiumingcheng/p/7253917.html
官方下载地址:https://www.sonarqube.org/downloads/
官方文档:https://docs.sonarqube.org/latest/
服务器安装好后,可以得到以下信息,之后在客户端侧配置使用
Web管理界面URL:http://xxxx:9000
超级管理员用户名密码:admin/admin
数据库链接地址:jdbc:mysql://xxxxxxxxxx/sonar
数据库用户名密码:sonar/xxxxx
SonarQube客户端集成
客户端分为好几种,支持scanner客户端、ant、gradle、maven、jenkins、idea插件等
这里只说两种最常用的gradle和maven
Gradle集成
gradle的集成官方文档有点问题,说了好多种gradle的写法,但是经过多次试验,在gradle4.4上,以下写法测试通过
build.gradle
在buildscript板块增加插件
buildscript {
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6"
}
}
在project板块增加
apply plugin: 'org.sonarqube'
sonarqube {
properties {
property "sonar.host.url", "http://xxxx:9000"
property "sonar.jdbc.url", "jdbc:mysql://xxxxxxxxxx/sonar"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property 'sonar.jdbc.username', 'sonar'
property 'sonar.jdbc.password', 'xxxxx'
}
}
在相应的目录下执行
gradle sonarqube
//如果要监测的是子工程
gradle xx工程名:sonarqube
看到页面上出现build sucess即为检测完毕。可以到http://xxxx:9000查看检查结果
Maven集成
更改本机的的setting文件:
在pluginGroups中增加组件:
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
在profiles中增加组件:
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://xxxx:39000
</sonar.host.url>
</properties>
</profile>
</profiles>
在相应的工程目录下运行
mvn sonar:sonar
得到以上界面即为成功扫描,可以去WEB页面看项目了
其他客户端请参考:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner