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

Posted janehost

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SonarQube+sonar-scanner+Maven+jenkins项目构建记录相关的知识,希望对你有一定的参考价值。

环境

  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的版本安装配置。

工具/环境 版本
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 sonar@\'%\' 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的用户名和密码。

    img

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/

弹出如下对话框

img

生成之后记得复制并保存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=./

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

参考博客说明:

  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

以上是关于SonarQube+sonar-scanner+Maven+jenkins项目构建记录的主要内容,如果未能解决你的问题,请参考以下文章

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

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

sonar-scanner扫描代码出错 SonarQube svn: E170001

Sonarqube gitlab 报告发布者未完成

SonarQube 不显示输出

Sonar实践问题记录(九):sonar-scanner分析参数