持续集成的探索之 SonarQube
2017年2月14日 · 523 字 · 2 分钟 · CI SonarQube
SonarQube 是一个开源平台,用于管理源代码的质量。
注:文中提到的例子地址是 https://github.com/CarlisleChan/CIPractice,一些配置也是以 Android 自动化测试的探索 和 持续集成的探索之配置 Jenkins 为基础的。
安装及运行
保存下面内容到本地 docker-compose.yaml
,也可直接将我的文件下载下来 地址
# docker 配置文件
version: '2'
services:
mysql:
container_name: mysql
image: mysql:5.7.16
ports:
- "9494:3306"
restart: always
volumes:
- ./var/lib/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=sonarqube
- MYSQL_ROOT_PASSWORD=8jnYxnPlIAzP
sonarqube:
container_name: sonarqube
image: sonarqube:6.3
links:
- mysql
ports:
- "9595:9000"
restart: always
volumes:
- ./var/lib/sonarqube:/var/lib/postgresql
environment:
- SONARQUBE_JDBC_USERNAME=root
- SONARQUBE_JDBC_PASSWORD=8jnYxnPlIAzP
- SONARQUBE_JDBC_URL=jdbc:mysql://mysql:3306/sonarqube?useUnicode=true&&characterEncoding=utf8
执行 docker-compose up -d
即可
配置 SonarQube
配置通用插件
# 中文汉化包
Chinese Pack
# Delegates authentication and authorization to LDAP.
LDAP
# 根据项目的规模进行排序,并用不同演示显示代码质量。
Radiator
# Code Analyzer for XML
SonarXML
配置 Quality Profiles
点击 Administration > System > Update Center > Available
- Android (提供 Android lint 规则)
- Checkstyle
- Findbugs
- XML
因为一个项目只能应用一个配置,所有我们可以为一个配置指定父配置然后继承它,再新建一个自定义配置将所有配置串起来,来评测项目。
点击 Quality Profiles → Create 并取个名字。
添加 Android Lint 作为父配置,然后切换到 Android Lint 并将 FindBugs Security Minimal 设为父配置,继续设置直到将所有配置串联起来,最后将 CustomAndroidProfile 设为默认配置。
与 Jenkins 搭配使用
先在 jenkins 下 安装 SonarQube Plugin
然后在 Manage Jenkins → Configure System 和 Global Tool Configure 里配置一下需要的参数
这里假设你的项目里已经配置好 SonarQube Task,如果没有的话请参考文中开始指向的例子中的配置
最后在执行脚本即可
./gradlew sonarqube
参考:
- http://dev.mamikon.net/installing-sonarqube-on-ubuntu/
- https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-14-04
- https://gold.xitu.io/entry/589d1c251b69e60059ba04b5
- https://room-15.github.io/blog/2016/01/21/Static-code-quality-measurements-with-SonarQube-Jacoco-and-UnitTests/