SonarQube 作为一款开源的代码质量检测工具, 非常适合有代码把控质量的需求的开发人员使用, 此篇文章将介绍如何快速的搭起一个 SonarQube 的运行环境, 以及在实际代码中使用到 SonarQube 提供的分析工具来做代码质量检测
SonarQube 安装
现在安装所有的工具, 我都倾向于使用 Docker 作为第一首选安装途径, 在Github 查看了 SonarQube 的开源项目后, 找到了官方提供的 Dockerfile 项目 docker-sonarqube
在 Dokcer Hub 上 我们可以看到其官方镜像的最新版本, 笔者现在看到的是7.1版本
查看完 Dockerfile 之后, 我们开始制作 docker-compose.yml 文件
- 我们的服务器上直接创建一个 sonar 的文件夹, 来放置我们的 docker-compose.yml
此文件夹位置可随意, 按自己的喜好即可
1
mkdir sonar
创建 docker-compose.yml
[sonarWebUIPort] : 对外提供 SonarQube 服务的端口
[jdbc-user] : SonarQube 存放数据, 用于 JDBC 访问的用户名
[jdbc-password] : SonarQube 存放数据, 用于 JDBC 访问的密码
[your-mysqlIP] : SonarQube 存放数据, 用于 JDBC 访问的数据库地址
[your-mysqlPort] : SonarQube 存放数据, 用于 JDBC 访问的数据库端口
1
2
3
4
5
6
7
8
9
10
11
12
13 version: "3"
services:
sonarqube:
image: sonarqube:7.1
container_name: sonar
ports:
- [sonarWebUIPort]:9000
- 29092:9092
environment:
- SONARQUBE_JDBC_USERNAME=[jdbc-user]
- SONARQUBE_JDBC_PASSWORD=[jdbc-password]
- SONARQUBE_JDBC_URL=jdbc:mysql://[your-mysqlIP]:[your-mysqlPort]/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false
制作好以后, 利用 docker-compose 命令启动容器
建议第一次启动, 不要加参数 -d, 便于查看启动日志
1 docker-compose up
启动完成以后, 我们可以访问 服务器IP:sonarWebUIPort 查看是否启动成功
如需登录, 可使用默认用户名密码 admin/admin
SonarQube 扫描
在安装好了 SonarQube 环境以后, 我们开始对我们的代码进行扫描检测, SonarQube 官方有提供非常详细的例子,
因为我们的项目代码使用 ant 进行构建, 所以这里我们关注 ant-example, 其他的常见的有 maven, gradle, 大家可按照实际情况进行配置
前提条件
- SonarQube 5.6+
- SonarQube Scanner for Ant 2.5+
- Ant 1.7.1 or higher
使用方法
配置 ant 构建脚本
因为每人的 ant 编译脚本都不太相同, 所以此处只说明一些必要的配置项
- 请在 project 中加入 xmlns:sonar=”antlib:org.sonar.ant
- 请配置自己本地的 sonar_ant_scaner_lib
- 请配置自己项目的 src.dir, build.dir, classes.dir
- 请配置自己项目的 sonar.host.url
- 请配置自己项目的 sonar.binaries, sonar.java.binaries
1 | <?xml version="1.0" ?> |
制作好以后, 我们可以启动 sonarQube scanner1
2cd your-project-root-floder
ant -f your-ant-filename.xml sonar
常见问题
- 如果项目中使用 SVN 了, 那么需要配置 SVN 账号