一、环境准备
centos7
mysql-5.7
jdk-1.8.0_144
sonarqube-7.0
sonar-scanner-4.0.0.1744
sonarqube7版本之后不再支持mysql
二、soanrqube下载地址
https://www.sonarqube.org/downloads/
https://binaries.sonarsource.com/Distribution/sonarqube/
三、新增sonar用户
useradd sonar
password sonar
四、使用docker安装mysql(方便)
准备映射目录
mkdir -p /home/sonar/docker/mysql/conf
mkdir -p /home/sonar/docker/mysql/data
mkdir -p /home/sonar/docker/mysql/logs
chown -R sonar.sonar /home/sonar/
docker run -d --name mysql \
-v /home/sonar/docker/mysql/conf:/etc/mysql/conf.d:Z \
-v /home/sonar/docker/mysql/data:/var/lib/mysql:z \
-v /home/sonar/docker/mysql/logs:/log:z \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123 \
192.168.241.140:5000/mysql:latest
##注意:我这里使用的mysql镜像为5.7.19,使用的是本地docker仓库,改的tag
数据库配置
//创建数据库
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
//创建用户
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
//授权sonar用户并设置密码
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
//刷新
FLUSH PRIVILEGES;
五、JDK安装省略
六、sonarqube安装
解压sonarqube-7.0.zip
unzip sonarqube-7.0.zip -d /usr/local/
创建软连接
cd /usr/local/
ln -s sonarqube-7.0/ sonarqube
更改权限
chown -R sonar.sonar sonarqube
编辑配置文件
vim /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
以sonar用户启动sonarqube
su - sonar /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
访问http://192.168.241.140:9000,出现一下界面,则安装完成。初始用户/密码:admin/admin
下载插件,配置–>应用市场。不过在线下载超级慢,建议需要什么插件自行去下载。
注意插件的版本号,很多版本不兼容
下载地址:https://github.com/SonarSource
替换安装插件:把下载的插件替换到目录/usr/local/sonarqube/extensions/plugins,完成之后重启sonarqube即可。
七、安装客户端扫描工具sonar-scanner
下载:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744.zip
安装
unzip sonar-scanner-cli-3.3.0.1492-linux.zip -d /usr/local/
ln -s /usr/local/sonar-scanner-3.3.0.1492-linux/ /usr/local/sonar-scanner
加入环境变量
vim /etc/profile
SONARSCANNER_HOME=/usr/local/sonar-scanner-4.0.0.1744
export PATH=$SONARSCANNER_HOME/bin
使用sonar-scanner提交代码检测
# sonar-scanner -Dsonar.projectKey=java -Dsonar.sources=. -Dsonar.host.url=http://192.168.241.140:9000 -Dsonar.login=13585323c4c8ac257c590d6e49c7b59dda5192f8
八、sonarqube集成jenkins
jenkins安装配置省略
安装SonarQube Scanner插件
重启jenkins
配置SonarQube
首先,在SonarQube中生成一个Token(PS:用token代替输入用户名和密码)
我这里刚开始启动时已经生成
Provide a token
jenkins: 869f399843992649d15d36863a76e0c1ab40ba49
mvn sonar:sonar \
-Dsonar.host.url=http://10.122.163.225:9000 \
-Dsonar.login=869f399843992649d15d36863a76e0c1ab40ba49
sonar-scanner \
-Dsonar.projectKey=html \
-Dsonar.sources=. \
-Dsonar.host.url=http://10.122.163.225:9000 \
-Dsonar.login=869f399843992649d15d36863a76e0c1ab40ba49
然后,在Jenkins中配置连接sonarqube服务器的地址,这里用到的token就是刚才在sonarqube中创建的那个token
注意:token第一次添加不成功,先保存当前已修改,在重新进入添加
最后,配置全局工具配置
任务配置
其中,sonar.java.binaries属性至关重要
sonarqube接入阿里巴巴代码规范
下载plugin,注意兼容版本
wget https://github.com/mrprince/sonar-p3c-pmd/releases/download/v2.6/sonar-pmd-plugin-2.6.jar
更改权限
chown sonar.sonar sonar-pmd-plugin-2.6.jar
也可以如下操作
重启sonarqube
su - sonar /usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart