搭建sonar+Jenkins+Maven+SVN完成持续集成代码分析管理
1、搭建sonar服务器(这里采用5.3版本)
前置条件:具有jdk环境
解压到某个磁盘
![](https://i-blog.csdnimg.cn/blog_migrate/245030a9ded901c7de63d72a8d0fb4be.png)
启动sonar服务器
进入sonarqube-5.3/bin目录根据当前系统环境进入相应的目录启动相应的脚本文件,这里以win64为例进入sonarqube-5.3/bin/windows-x86-64双击StartSonar.bat(
linux环境下记得sonar.sh与wrapper文件同时授权chmod 777)即可:
![](https://i-blog.csdnimg.cn/blog_migrate/3d5c50dcb9205e5fefb5485516f92ca2.png)
配置sonar服务器显示中文
拷贝到目录sonarqube-5.3/extensions/plugins即可
![](https://i-blog.csdnimg.cn/blog_migrate/fa91ff2e5fec9b517945a4f4c14d0a3d.png)
配置sonar服务器jdbc
打开目录文件sonarqube-5.3/conf/sonar.properties
加入数据源配置(这里采用的是MySQL,可支持多种数据库):
sonar.jdbc.url=jdbc:mysql://192.168.1.8:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=deploy_user
sonar.jdbc.password=deploy_pass
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
完成以上操作注意重启sonar服务器即可,此时sonar服务器搭建配置完成
访问地址:
http://localhost:9000
(sonar服务器默认端口9000,sonar.properties里面可修改)
![](https://i-blog.csdnimg.cn/blog_migrate/561045c9c1a42691c18739aaabd8a2be.png)
2、搭建sonar客户端用于分析代码(这里采用2.5版本)
sonar-scanner下载地址:
https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.5.zip
解压到某个磁盘
![](https://i-blog.csdnimg.cn/blog_migrate/df98da9820b75947106c92fd7b40ac61.png)
配置sonar客户端jdbc及服务器地址
打开目录文件sonar-scanner-2.5/conf/sonar-runner.properties
加入数据源配置(这里采用的是MySQL,可支持多种数据库):
sonar.jdbc.url=jdbc:mysql://192.168.1.8:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=deploy_user
sonar.jdbc.password=deploy_pass
加入sonar服务器地址(可将分析结果同步到服务器):
sonar.host.url=
http://localhost:9000
配置环境变量:
SONAR_RUNNER_HOME=D:\sonar\sonar-scanner-2.5
Path=%SONAR_RUNNER_HOME%\bin;
打开cmd输入sonar-runner -version
![](https://i-blog.csdnimg.cn/blog_migrate/915c7380f5da25e135e3c3d286589e3b.png)
出现如上内容表示配置成功
3、执行代码分析任务
在某个项目的根目录新建文件sonar-project.properties复制如下内容:
# must be unique in a given SonarQube instance
sonar.projectKey=lkpg
# this is the name displayed in the SonarQube UI
sonar.projectName=anjbo-lkpg
sonar.projectVersion=2.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=src
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/52f4b2eb7049a7623bc26f7eaaf6d50c.png)
在当前目录地址栏输入cmd进入cmd命令窗口
![](https://i-blog.csdnimg.cn/blog_migrate/c0c7aa47f062f971a34dee0c8940f017.png)
执行命令sonar-runner即可进入分析步骤:
![](https://i-blog.csdnimg.cn/blog_migrate/16a8739106c7d32f46dc7570c10b9e2b.png)
此时打开sonar服务器即可出现分析的项目:
![](https://i-blog.csdnimg.cn/blog_migrate/c2c008be33333440a44ad57f5093cb74.png)
4、搭建jenkins(这里采用5.3版本)
下载完成双击下一步即可完成
首次进入jenkins如要输入密码,密码位置:/root/.jenkins/secrets/initialAdminPassword
进入选择插件安装界面,选择第一个(Install suggested plugins)
![](https://i-blog.csdnimg.cn/blog_migrate/dfe80401bb804e9218147114bc0afae7.png)
插件安装完成之后,需要创建第一个用户,建议统一使用test或者admin
![](https://i-blog.csdnimg.cn/blog_migrate/f0478c1e11beb477f5a6c31fdbf5f9cd.png)
创建用户之后,就可以使用jenkins了
![](https://i-blog.csdnimg.cn/blog_migrate/c56bf154a83e8cba5a1c4f0ef9afc76b.png)
点击start using jenkins 进入jenkins
![](https://i-blog.csdnimg.cn/blog_migrate/5d335cfa6bf3fa3fdc83f318636ca3ec.png)
5、系统设置
Maven项目配置
![](https://i-blog.csdnimg.cn/blog_migrate/f2244374a82c6de57d09426eaa5ae410.png)
SonarQube servers配置
![](https://i-blog.csdnimg.cn/blog_migrate/9748488cbe578f5576d1da38c0d4857e.png)
其中Server authentication token在sonar服务器生成
http://192.168.1.8:9000/users
> TOKENS
![](https://i-blog.csdnimg.cn/blog_migrate/59a455a3c435b3ef8dab2e93826f31a0.png)
奖生成的tokens复制到
Server authentication token即可
![](https://i-blog.csdnimg.cn/blog_migrate/0711616f7acb51d227e18aa876c826b5.png)
注意开启scm,否则后面会出现
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.ERROR: SonarQube scanner exited with non-zero code: 1Finished: FAILURE
6、Global Tool Configuration
![](https://i-blog.csdnimg.cn/blog_migrate/faa61f16d5f292d4605ca8781df59037.png)
采用本地setting文件可以使用自己搭建的私服中央仓库
![](https://i-blog.csdnimg.cn/blog_migrate/8bd076da0ad769ea75f8705edead616e.png)
使用本地搭建的jdk环境
![](https://i-blog.csdnimg.cn/blog_migrate/b29e3ceb1df08c039ecb26b8b3019480.png)
使用本地搭建的sonar客户端
![](https://i-blog.csdnimg.cn/blog_migrate/bac1776e8e1c4956e2ec79ff8924c8c8.png)
使用本地的maven,maven搭建过程:
解压到某个目录:
![](https://i-blog.csdnimg.cn/blog_migrate/9c5b241c83dd17f22fd69fcc476a6800.png)
配置环境变量
MAVEN_HOME=D:\Java\apache-maven-3.0.5
Path=%MAVEN_HOME%\bin;
进入cmd输入mvn -v出现如下内容表示配置成功:
![](https://i-blog.csdnimg.cn/blog_migrate/6e4c3cfdc291a0c8ca8564db56a9883a.png)
7、插件管理
搜索需要的插件勾选直接安装即可:
![](https://i-blog.csdnimg.cn/blog_migrate/0c43929e00569d32c1986f85fadc1d09.png)
8、新建任务完成自动编译打包及代码分析
![](https://i-blog.csdnimg.cn/blog_migrate/45c43d79a7db82112140affc45213af7.png)
输入项目名称,选择maven项目
![](https://i-blog.csdnimg.cn/blog_migrate/676a141a912b2446ed25040b0acdb9e5.png)
配置SVN信息,Credentials首次进来需要add添加SVN账号密码
![](https://i-blog.csdnimg.cn/blog_migrate/0c048e9377c0f15d3dffc6622b046dd4.png)
配置发布步骤添加sonar分析器,当然也可以在Pre Steps编译之前执行分析任务
![](https://i-blog.csdnimg.cn/blog_migrate/271f30eb734a4b21c98c08d14e46cd99.png)
添加构建后操作即可发布编译程序到服务器容器
![](https://i-blog.csdnimg.cn/blog_migrate/0bfbcab23883052222c118468bfaa4bf.png)
点击右边图标即可开始构建
![](https://i-blog.csdnimg.cn/blog_migrate/064e091f3a290b52ceb953ebc0ef4742.png)
进入控制台输出日志
![](https://i-blog.csdnimg.cn/blog_migrate/b08aaafb9460c2a189fab033a5d5480c.png)
构建及代码分析完成