安装Sonarqube8
前提:sonarqube8需要jdk11的环境
yum install -y java-11-openjdk
去官网上下载对应的zip包,放到服务器中,我这里直接放到/root目录下
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.6.0.39681.zip
unzip sonarqube-8.6.0.39681.zip
mkdir /opt/sonar
mv sonarqube-8.6.0.39681/* /opt/sonar/
useradd sonar
chown -R sonar. /opt/sonar
su sonar
#使用默认配置,如有需要,可使用oracle,postgresql等数据库而不是保存sonarqube数据
/opt/sonar/bin/linux-x86-64/sonar.sh start
查看sonarqube日志:
tail -100f /opt/sonar/logs/sonar-20201230.log
启动成功后,sonarqube默认web页面访问9000端口,默认账号密码都是admin,修改默认密码,进入首页:
生成令牌:
点击头像,安全一栏下:输入令牌名称(任意字符串),我这里写成token,点击生成
保存生成的token,后面jenkins连接sonarqube需要使用。
jenkins整合sonarqube
jenkins安装sonarqube scanner插件
安装完成重启后,配置sonar的凭证信息:选择secrect text,secrect填入上一步sonarqube生成的token,点击确定
点击进入系统配置,找到sonarqube server,添加sonar凭证和server url(sonarqube web页面访问路径)
点击全局工具配置,新增一个sonarqube scanner,点击保存
Sonarqube代码审查
非流水线项目
对非流水线项目添加sonarqube scan的步骤
配置一些信息:注意task to run需要填入scan
sonar.projectKey=test01
sonar.projectName=test01
sonar.projectVersion=1.0
sonar.sources=.
#sonar.exclusions=**/test/**,**/target/**
sonar.java.binaries=target
sonar.java.source=1.8
sonar.java.target=1.8
sonar.sourceEncoding=UTF-8
点击保存,然后build now,等待构建完成后,进入sonarqube,发现审查结果已经出来了
故意写一点冗余代码,观察sonarqube结果:
流水线项目审查代码
项目根目录创建一个sonar-project.properties文件,文件内容与刚才一样
sonar.projectKey=web_pipeline
sonar.projectName=web_pipeline
sonar.projectVersion=1.0
sonar.sources=.
#sonar.exclusions=**/test/**,**/target/**
sonar.java.binaries=target
sonar.java.source=1.8
sonar.java.target=1.8
sonar.sourceEncoding=UTF-8
配置Jenkinsfile:注意箭头指出的名字要对应上
![image-20201230213657853](https://gitee.com/wj204811/wj204811/raw/master/img/20201230213657.png)
修改完成后提交,然后构建流水线项目,观察结果:流水线项目成功被sonarqube审查