一:sonar官网下载、安装mysql、jdbc
https://www.sonarqube.org/ (6.7.5 稳定版 7.2.1最新版本 )建议6.7.5版本
下载到本地、可通过xtfp 传输到对应服务器上
解压sonarqube压缩包
unzip sonarqube-6.7.5.zip
安装sonar_scanner
将解压的sonar_scanner放到sonarqube路径下面
安装mysql
下载地址: https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载到本地、上传到对应服务器进行解压安装(mysql安装过程可参考百度文档)
安装jdk1.8.0以上版本 (jdk安装过程可参考百度文档)
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
二:配置环境变量
vim /etc/profile
添加
#sonar-scanner profile
export
SONAR_SCANNER_HOME=/opt/softs/sonarqube-6.7.5/sonar-scanner-2.8
export
PATH=${SONAR_SCANNER_HOME}/bin:${PATH}
export SONAR_HOME=/opt/softs/sonarqube-6.7.5
保存退出并使配置生效
source /etc/profile 使环境变量立即生效
三:配置sonar.properties 和wrapper.conf 环境 以及mysql数据库信息
cd /opt/softs/sonarqube-6.7.5/conf
修改: vim sonar.properties
配置mysql 数据库 信息(mysql的jdbc可只配置到sonar、后面是MySQL数据库的基本信息、可不填写)
sonar.jdbc.url=jdbc:mysql://服务器ip:端口号/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root #用户名
sonar.jdbc.password=kolosi #密码
配置sonar信息
#sonar.sorceEncoding=UTF-8
#sonar.login=admin #sonar.password=admin
#用于登录sonar
#以及页面的信息
sonar.web.context=/
sonar.web.port=8090 #端口、默认9000、可修改
sonar.web.host=0.0.0.0
sonar.host.url=http://ip:端口号
四:启动sonar
直接用 root 用户启动会报错
所以创建新用户
adduser cc
pwd cc kolosi
切换用户
su cc
切到对应路径
cd /opt/softs/sonarqube-6.7.5/bin/linux-x86-64/
目录启动时经常报错无权限 赋予新建用户对应权限即可
chown -R cc:cc /opt/softs/sonarqube-6.7.5/
启动
./soanr.sh start
启动成功后会生成 SonarQube.pid 的文件
启动成功日志:
五:网址中输入ip地址打开sonar
登录: 账号密码 admin
登录之后依次选择下面,参照图片安装
“Administrator” -> “Marketplace” 安装汉化包 Chinese Pack 以及 Checkstyle
安装成功之后、重启sonar
再次登录sonar即可
六:jenkins+sonar 项目构建检查
基本插件:
系统管理--系统设置
token的生成
需要admin登录sonar,右上角--->我的账号---->安全---->生成令牌,令牌的名字可以任意填写,将生成的token填写至jenkins server配置信息中
系统管理--全局工具配置 -sonarQubeScanner、kexu可选择自动安装
创建新的任务
我们选择在jenkins项目构建过程中加入SonarScanner 进行代码分析
需要在新建的 Jenkins 项目的构建环境标签页中勾选"Prepare SonarQube Scanner evironment"
增加 Execute SonarQube Scanner 构建步骤
下面列出了一些参数:
sonar.language 指定了要分析的开发语言(特定的开发语言对应了特定的规则);
sonar.sources 定义了需要分析的源代码位置(示例中的$WORKSPACE 所指示的是当前 Jenkins 项目的目录);
sonar.java.binaries 定义了需要分析代码的编译后 class 文件位置;
Additional arguments 输入框中可以输入一些附加的参数,示例中的-X 意思是进入 SonarQube Scanner 的 Debug 模式,这样会输出更多的日志信息;
JVM Options 可以输入在执行 SonarQube Scanner 是需要的 JVM 参数
sonar.projectKey=sitbgSonar
sonar.projectName=sitbgSonar
sonar.projectVersion=1.0
sonar.language=java
sonar.java.binaries=$WORKSPACE/bg-core/target/classes/,$WORKSPACE/bg-facade/target/classes/,$WORKSPACE/bg-web/target/classes/ #此处是三个项目文件一起进行代码检测
sonar.sources=$WORKSPACE/bg-core/src,$WORKSPACE/bg-facade/src,$WORKSPACE/bg-web/src #此处是三个项目文件一起进行代码检测
#$WORKSPACE 是jenkins的工作 空间目录、
sonar.java.binaries 后面的l路径是进行代码检测分析文件的路径
配置成功后保存、点击构建项目即可
控制台输出、构建中日志输出
因为加入了 代码检测、所以jenkins进行项目构建的时候会比以往耗费时长
成功日志:
此时登录 sonar 即可看到项目的分析结果