1. SonarQube简单介绍
SonarQube能够提供对代码的一整套检查扫描和分析功能,拥有一套服务器端程序,然后再通过客户端或者别的软件的插件的形式完成对各开发环境和软件的支持。
对编程语言的支持非常广泛,包括C、C++、Java、Objective C、Python、JavaScript、PHP、C#、Swift、Erlang、Groovy等众多语言
提供了对HTML、CSS、JSON、XML、CSV、SQL、JSP/JSF等类型的文档的支持
提供了以FindBugs、PMD、CheckStyle方式执行代码分析和测试检查的功能
登录认证方式支持LDAP、Bitbucket、Azure ActiveDirectory(AAD)、Crowd等方式
提供了优美的视图方式下查看代码分析和测试结果报告
网址:https://www.sonarqube.org/
2. SonarQube安装及部署
2.0 在安装sonarqube时,必须先安装jdk,并配置了环境变量
2.1 下载SonarQube https://www.sonarqube.org/downloads/
2.2 解压并放置在任意文件夹下
2.3进行bin目录,然后选择win*****与电脑相应的文件夹,点击StartSonar.bat启动启动后,若出现一下界面则表示成功
若没有,则表示启动失败
进入sonarqube-6.4\sonarqube-6.4\logs\查看weblog找到相应的错误并解决。
此时启动成功后,SonarQube默认使用的是内置的H2数据库,当然也可以进行自定义配置,在sonarqube-6.4\sonarqube-6.4\conf\下,打开sonar.properties文件注意:
SonarQube server默认使用的是9000端口,如果目前9000端口已经占用,进行到sonarqube-6.4\sonarqube-6.4\conf\下,打开sonar.properties文件进行更改端口的设置
2.4 打开浏览器进入http://localhost:9000,将会显示一下界面
此时如果出现以下界面并且SonarQube已经启动
那问题就是出现在了我们使用了代理服务器访问,此时应该将代理服务器关闭,转为直接链接
再次访问便可以了。
2.5 登陆,默认用户名和密码都是admin
2.6 下载中文包插件,汉化网页
链接:https://docs.sonarqube.org/display/PLUG/Plugin+Library
在右下角
进入
点击Lasttest version对应链接便可以下载,下载成功后,放在sonarqube-6.4\sonarqube-6.4\extensions\plugins文件夹下。
2.7 重新启动SonarQube
1、首先关闭SonarQube.bat窗口
2、再Ctrl+Shift+Esc调出windows资源管理器
3、在进程中关闭所有Java.exe进程
4、然后重新进入.\sonarqube-4.5.7\bin\windows-x86-32,运行StartSonar.bat文件
2.8 打开 http://localhost:9000/projects,已经汉化问中文了3.0 Android Studio 中配置SonarLint与SonarQube
3.1安装SonarLine插件
3.2安装成功后,进入到Other Setting界面
点击+添加SonarQube服务器
3.3 Configuration Name就是标志这个服务器的名字
3.4 下拉选择Token登陆还是login/password登陆
建议使用login\password登陆,都填写admin,这样即使你没有在网页上登陆,依然可以进行分析。
3.5 最后点击next,finish,便看到添加成功
3.6在Other Setting中SonarLint Project Setting中设置绑定服务器
3.7点击ok,完成Android Studio与SonarQube服务器交互配置
4Android Studio中Gradle配置需要分析的项目
4.1 在需要配置的项目中build.gradle文件将以下内容放置在最前面
参考链接: https://plugins.gradle.org/plugin/org.sonarqubebuildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
}
}
apply plugin: "org.sonarqube"
这里有一种更加便捷的方式
但是这不是所有的gradle版本都适用,因此推荐使用最上面的版本。
4.2 同步之后,在As的右边,打开Gradle栏,在自己配置的项目或者module中打开,
选择other打开,下拉便可以看到sonarqube
4.3 点击,便会分析
4.4 分析完成后,刷新http://localhost:9000/projects
便可以看到刚才分析的项目,分析结果可视化的展示,非常直观。
4.5 在实际分析项目中,可能需要指定,哪些文件或者文件夹不需要分析,哪些需要,这些的配置是在刚才添加插件的build.gradle文件完成
注意:
必须要先应用插件,才可以配置sonarqube
4.6 在上面配置sonarqube属性中,只是使用了
sonar.projectName 表示在sonarqube中显示的项目名字
sonar.sources 要分析的文件路径
sonar.exclusions 不分析某些文件
更多配置请详细看
https://docs.sonarqube.org/display/SONAR/Analysis+Parameters
注意:
1. 文件的路径可以不使用绝对路径,src开头即可
2. 在没有配置相应属性时,默认分析的文件夹时src,详情可以看上面的链接。
3. sonar.exclusions 和 sonar.inclusions 等属性配置不分析的文件中,或者要分析的文件中,使用了一个匹配模式
举例:
详情可看:https://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus
4.7 可能还有一种情况,sonarqube插件配置的是整个项目,而项目中有很多个module,此时可以使用
详情请看:
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle
5 注意
1. 如果Android studio已经分析了一个项目,在sonarqube server中已经保存,当要再进行分析时,需要先删除sonarqube server中的项目,然后再进行分析
2. 在bin下点击StartSonar.bat时,如果启动失败,查看log,找到相应的exception并解决
3. Sonarqube默认使用的是H2内置数据库,推荐使用Mysql,或者Oracle等数据库。
6. 结束