SonarQube+sonar-scanner+Maven+jenkins项目构建记录

一片荷叶 2020-05-09

环境

  1. windows2012服务器:安装SonarQube+sonar-scanner
  2. jenkins安装在windows2012同一台服务器
  3. 测试的项目在另外linux服务器上

版本配置

  1. jdk安装版本1.8
  2. maven安装版本3.6
  3. SonarQube与安装的jdk版本关联非常重要,所以这里选择7.6版本

说明:

可以参考如下SonarQube与jdk之前的版本信息:

SonarQube和jdk版本信息,可以参考官方文档,这里查看的是7.6的版本安装配置。

工具/环境版本
win20122012(IP:192.168.1.136)
SonarQube7.6
Scanner3.3.0
JDK1.8.0
MySQL5.7
Jenkins2.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上展示如下:

SonarQube8.08.18.2
sonar-l10n-zh8.08.18.2
SonarQube7.07.17.27.37.47.57.67.77.87.9
sonar-l10n-zh1.201.211.221.231.241.251.261.271.281.29
SonarQube6.06.16.26.36.46.56.66.7
sonar-l10n-zh1.121.131.141.151.161.171.181.19
SonarQube5.45.55.6
sonar-l10n-zh1.91.101.11
SonarQube4.04.1
sonar-l10n-zh1.71.8
SonarQube3.13.23.33.43.53.63.7
sonar-l10n-zh1.01.11.21.31.41.51.6

这里下载的是sonar-l10n-zh-1.26版本。

checkstyle版本下载地址:https://github.com/checkstyle/checkstyle/releases/,这里找到适合的版本下载,版本对应关系如下:

Checkstyle PluginSonar minSonar maxCheckstyleJdk
4.317.97.9+8.311.8
4.307.97.9+8.301.8
4.297.97.9+8.291.8
4.287.97.9+8.2811
4.276.77.7+8.271.8
4.266.77.7+8.261.8
4.256.77.7+8.251.8
4.246.77.7+8.241.8
4.236.77.7+8.231.8
4.226.77.7+8.221.8
4.216.77.7+8.211.8
4.206.77.7+8.201.8
4.196.77.7+8.191.8
4.186.77.7+8.181.8
4.176.77.58.171.8
4.165.6.67.28.161.8
4.155.6.67.28.151.8
4.145.6.67.28.141.8
4.135.6.67.28.131.8
4.125.6.67.28.121.8
4.115.6.67.28.111.8
4.10.15.6.67.28.10.11.8
4.105.6.67.28.101.8
4.95.6.67.28.91.8
4.85.6.67.28.81.8
4.75.6.67.28.71.8
4.65.6.67.28.61.8
4.55.6.67.28.51.8
4.45.6.67.28.41.8
4.35.6.67.28.31.8
4.25.6.67.28.21.8
4.15.6.67.28.11.8
4.05.6.67.28.01.8
3.85.6.67.27.8.21.8
3.75.6.67.27.71.8
3.6.15.6.67.27.6.11.8
3.65.6.47.27.61.8
3.5.15.6.47.27.5.11.8
3.55.6.47.27.51.8
3.45.6.47.27.41.8
3.35.6.47.27.31.8
3.25.6.47.27.21.8
3.1.25.6.47.27.1.21.8
3.1.15.6.47.27.1.11.8
3.15.6.4--7.11.8
2.44.5.2--6.12.11.7
2.34.5.1--6.4.11.7
2.24.5.1--6.11.6
2.1.13.6--5.61.6
23.6--5.61.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的用户名和密码。

  SonarQube+sonar-scanner+Maven+jenkins项目构建记录

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一致的版本进行安装,如图
SonarQube+sonar-scanner+Maven+jenkins项目构建记录

jenkins系统配置

找到SonarQube Servers:

  • [x] Enable injection of SonarQube server configuration as build environment variables,如图

SonarQube+sonar-scanner+Maven+jenkins项目构建记录

这里注意,token是在My Account -> Security 或者访问:http://192.168.1.136:19655/account/security/

弹出如下对话框

SonarQube+sonar-scanner+Maven+jenkins项目构建记录

生成之后记得复制并保存Token,不然页面刷新或者关闭后就无法查询到Token了。

4ae2ab06f7ed24c28f7213321cd79e0420183604

jenkis-job中的配置

在构建结束或构建时添加**Execute SonarQube Scanner**如下

SonarQube+sonar-scanner+Maven+jenkins项目构建记录

说明

sonar.projectKey=项目名称
sonar.projectName=项目名称
sonar.projectVersion=${branch} #构建构建版本分支
sonar.sources=./
sonar.language=java #构建的项目所使用的语言
sonar.sourceEncoding=UTF-8
sonar.java.binaries=./

接下来 直接构建就可以了,构建成功如下所示:

SonarQube+sonar-scanner+Maven+jenkins项目构建记录

参考博客说明:

  1. https://ken.io/note/jenkins-maven-java-sonar-integration
  2. https://www.cnblogs.com/YatHo/p/7345077.html
  3. https://www.cnblogs.com/xingyunblog/p/9947854.html
  4. https://www.cnblogs.com/xiao987334176/p/12011623.html

相关推荐