SonarQube+sonar-scanner+Maven+jenkins项目构建记录
环境
- windows2012服务器:安装SonarQube+sonar-scanner
- jenkins安装在windows2012同一台服务器
- 测试的项目在另外linux服务器上
版本配置
- jdk安装版本1.8
- maven安装版本3.6
- SonarQube与安装的jdk版本关联非常重要,所以这里选择7.6版本
说明:
可以参考如下SonarQube与jdk之前的版本信息:
SonarQube和jdk版本信息,可以参考官方文档,这里查看的是7.6的版本安装配置。
工具/环境 | 版本 |
---|---|
win2012 | 2012(IP:192.168.1.136) |
SonarQube | 7.6 |
Scanner | 3.3.0 |
JDK | 1.8.0 |
MySQL | 5.7 |
Jenkins | 2.22.1 |
安装配置步骤
创建mysql数据库和用户
可以使用navigate工具直接创建数据库,注意数据库的编码格式使用utf-8,创建数据库用户使用下面命令
#添加用户 create user sonar identified by ‘sonar‘; #授权 grant all privileges on sonar.* to ‘%‘ identified by ‘sonar‘; flush privileges; #查看权限 show grants for ‘sonar‘;
SonarQube安装
下载
在windows上只需要下载下来解压修改一下配置文件,下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/。
配置
在SonarQube配置文件conf中修改配置文件sonar.properties
sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://192.168.1.202:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.web.host=192.168.1.136 sonar.web.port=19655 sonar.web.context=
说明:
sonar.jdbc.username是之前新建的数据库用户名
sonar.jdbc.password是数据库sonar的密码
sonar.jdbc.url是数据库连接的url地址,注意后面加上&useSSL=false,否则启动SonarQube会出现报错信息
sonar.web.host是当前sonarqube的服务器地址,这里如果需要远程访问,则建议修改为当前服务器的地址,否则即使开启了端口号远程也无法访问
sonar.web.port是访问的端口,建议修改一个不常用的,以防端口占用,启动sonarqube服务失败!
插件安装
这里需要安装两个插件:checkstyle和chinese中文汉化
sonarqube插件地址是:https://github.com/SonarQubeCommunity/sonar-l10n-zh,这是SonarQube的汉化包,关于插件和版本之前的信息,这里截取github上展示如下:
SonarQube | 8.0 | 8.1 | 8.2 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
sonar-l10n-zh | 8.0 | 8.1 | 8.2 | |||||||
SonarQube | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 7.5 | 7.6 | 7.7 | 7.8 | 7.9 |
sonar-l10n-zh | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 |
SonarQube | 6.0 | 6.1 | 6.2 | 6.3 | 6.4 | 6.5 | 6.6 | 6.7 | ||
sonar-l10n-zh | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | ||
SonarQube | 5.4 | 5.5 | 5.6 | |||||||
sonar-l10n-zh | 1.9 | 1.10 | 1.11 | |||||||
SonarQube | 4.0 | 4.1 | ||||||||
sonar-l10n-zh | 1.7 | 1.8 | ||||||||
SonarQube | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 | 3.7 | |||
sonar-l10n-zh | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 |
这里下载的是sonar-l10n-zh-1.26版本。
checkstyle版本下载地址:https://github.com/checkstyle/checkstyle/releases/,这里找到适合的版本下载,版本对应关系如下:
Checkstyle Plugin | Sonar min | Sonar max | Checkstyle | Jdk |
---|---|---|---|---|
4.31 | 7.9 | 7.9+ | 8.31 | 1.8 |
4.30 | 7.9 | 7.9+ | 8.30 | 1.8 |
4.29 | 7.9 | 7.9+ | 8.29 | 1.8 |
4.28 | 7.9 | 7.9+ | 8.28 | 11 |
4.27 | 6.7 | 7.7+ | 8.27 | 1.8 |
4.26 | 6.7 | 7.7+ | 8.26 | 1.8 |
4.25 | 6.7 | 7.7+ | 8.25 | 1.8 |
4.24 | 6.7 | 7.7+ | 8.24 | 1.8 |
4.23 | 6.7 | 7.7+ | 8.23 | 1.8 |
4.22 | 6.7 | 7.7+ | 8.22 | 1.8 |
4.21 | 6.7 | 7.7+ | 8.21 | 1.8 |
4.20 | 6.7 | 7.7+ | 8.20 | 1.8 |
4.19 | 6.7 | 7.7+ | 8.19 | 1.8 |
4.18 | 6.7 | 7.7+ | 8.18 | 1.8 |
4.17 | 6.7 | 7.5 | 8.17 | 1.8 |
4.16 | 5.6.6 | 7.2 | 8.16 | 1.8 |
4.15 | 5.6.6 | 7.2 | 8.15 | 1.8 |
4.14 | 5.6.6 | 7.2 | 8.14 | 1.8 |
4.13 | 5.6.6 | 7.2 | 8.13 | 1.8 |
4.12 | 5.6.6 | 7.2 | 8.12 | 1.8 |
4.11 | 5.6.6 | 7.2 | 8.11 | 1.8 |
4.10.1 | 5.6.6 | 7.2 | 8.10.1 | 1.8 |
4.10 | 5.6.6 | 7.2 | 8.10 | 1.8 |
4.9 | 5.6.6 | 7.2 | 8.9 | 1.8 |
4.8 | 5.6.6 | 7.2 | 8.8 | 1.8 |
4.7 | 5.6.6 | 7.2 | 8.7 | 1.8 |
4.6 | 5.6.6 | 7.2 | 8.6 | 1.8 |
4.5 | 5.6.6 | 7.2 | 8.5 | 1.8 |
4.4 | 5.6.6 | 7.2 | 8.4 | 1.8 |
4.3 | 5.6.6 | 7.2 | 8.3 | 1.8 |
4.2 | 5.6.6 | 7.2 | 8.2 | 1.8 |
4.1 | 5.6.6 | 7.2 | 8.1 | 1.8 |
4.0 | 5.6.6 | 7.2 | 8.0 | 1.8 |
3.8 | 5.6.6 | 7.2 | 7.8.2 | 1.8 |
3.7 | 5.6.6 | 7.2 | 7.7 | 1.8 |
3.6.1 | 5.6.6 | 7.2 | 7.6.1 | 1.8 |
3.6 | 5.6.4 | 7.2 | 7.6 | 1.8 |
3.5.1 | 5.6.4 | 7.2 | 7.5.1 | 1.8 |
3.5 | 5.6.4 | 7.2 | 7.5 | 1.8 |
3.4 | 5.6.4 | 7.2 | 7.4 | 1.8 |
3.3 | 5.6.4 | 7.2 | 7.3 | 1.8 |
3.2 | 5.6.4 | 7.2 | 7.2 | 1.8 |
3.1.2 | 5.6.4 | 7.2 | 7.1.2 | 1.8 |
3.1.1 | 5.6.4 | 7.2 | 7.1.1 | 1.8 |
3.1 | 5.6.4 | -- | 7.1 | 1.8 |
2.4 | 4.5.2 | -- | 6.12.1 | 1.7 |
2.3 | 4.5.1 | -- | 6.4.1 | 1.7 |
2.2 | 4.5.1 | -- | 6.1 | 1.6 |
2.1.1 | 3.6 | -- | 5.6 | 1.6 |
2 | 3.6 | -- | 5.6 | 1.6 |
这里暂时就用到这两个插件,插件下载完成放到D:\sonarqube-7.6\extensions
,然后重启服务进入sonarqube可以看到汉化成功!还可以安装PMD、FindBugs根据需要安装。
说明:
- Chinese Pack:SonarQube 页面汉化
??- Findbugs ->聚焦:潜在BUG
??- Checkstyle ->聚焦:惯例
??- PMD -> 聚焦:不良做法
开启权限
1.打开sonarqube的控制台,使用admin登录后 ,在配置->SCM->菜单中,将Disabled the SCM Sensor设置为true,
2.在svn页面,设置svn的用户名和密码。
sonar-scanner安装配置
下载
直接下载sonar-scanner-3.3.0版本,下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/。解压到指定目录,接下来就是修改配置信息。
配置修改
进入配置文件D:\sonar-scanner-3.3.0.1492-windows\conf
,修改配置文件sonar-scanner.properties
,修改如下:
#测试项目的url地址 sonar.host.url=http://192.168.1.143:8080/hrcm
jenkins配置
配置
jenkins上需要安装插件SonarQube Scanner
。安装之后重启jenkins,接下来就是配置操作。
Global Tool Configuration
SonarQube Scanner
选择和scanner一致的版本进行安装,如图
jenkins系统配置
找到SonarQube Servers:
- [x] Enable injection of SonarQube server configuration as build environment variables,如图
这里注意,token是在My Account -> Security 或者访问:http://192.168.1.136:19655/account/security/
弹出如下对话框
生成之后记得复制并保存Token,不然页面刷新或者关闭后就无法查询到Token了。
4ae2ab06f7ed24c28f7213321cd79e0420183604
jenkis-job中的配置
在构建结束或构建时添加**Execute SonarQube Scanner**
如下
说明
sonar.projectKey=项目名称
sonar.projectName=项目名称
sonar.projectVersion=${branch} #构建构建版本分支
sonar.sources=./
sonar.language=java #构建的项目所使用的语言
sonar.sourceEncoding=UTF-8
sonar.java.binaries=./
接下来 直接构建就可以了,构建成功如下所示:
参考博客说明: