https://binaries.sonarsource.com/?prefix=Distribution
sonarqube 7.8
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip
docker方式安装:
docker pull sonarqube:7.8-community
mkdir -p /devops/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /devops/sonarqube/
docker run -itd --name sonarqube7 \
-p 9000:9000 \
-v /devops/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
-v /devops/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
-v /devops/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
-v /devops/sonarqube/sonarqube_data:/opt/sonarqube/data \
sonarqube:7.8-community
docker logs -f sonarqube7
// 中文插件
https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar
// 进入目录
cd /devops/sonarqube/sonarqube_extensions/downloads
//
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar
//
chmod +x sonar-l10n-zh-plugin-1.28.jar
//
docker restart sonarqube7
sonar-scanner-cli的安装:
# 进入实验目录
cd /devops
#
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
#
unzip sonar-scanner-cli-4.6.2.2472-linux.zip
#
vim /etc/profile
export SONAR_SCANNER_HOME=/data/devops6/sonar-scanner-4.8.0.2856-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
source /etc/profile
#
sonar-scanner -v
#
vi bin/sonar-scanner
#
42 use_embedded_jre=false
43 if [ "$use_embedded_jre" = true ]; then
44 export JAVA_HOME="$sonar_scanner_home/jre"
45 fi
#
sonar-scanner -v
sonarqube 7.8对应的sonar-scanner-cli
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
项目中添加 sonar-project.properties
将sonar账号和密码存储到Jenkins凭据中
# 定义唯一的关键字
sonar.projectKey=devops6-maven-service
# 定义项目名称
sonar.projectName=devops6-maven-service
# 定义项目的版本信息
sonar.projectVersion=1.0
# 指定扫描代码的目录位置(多个逗号分隔)
sonar.sources=.
# 执行项目编码
sonar.sourceEncoding=UTF-8
# 指定sonar Server
# sonar.host.url=http://192.168.1.200:9000
# 认证信息
# sonar.login=admin
# sonar.password=admin123
# java classes
sonar.java.binaries=target/classes
sonar.java.test.binaries=target/test-classes
sonar.java.surefire.report=target/surefire-reports
命令行方式:
stage("CodeScan"){
steps{
script{
withCredentials([usernamePassword(credentialsId: '9ff42b72-597e-49dd-a62f-2553d48304fc',
passwordVariable: 'SONAR_PASSWD',
usernameVariable: 'SONAR_USER')]) {
sh """
sonar-scanner \
-Dsonar.login=${SONAR_USER} \
-Dsonar.password=${SONAR_PASSWD} \
-Dsonar.host.url=http://192.168.1.200:9000
"""
}
}
}
}