安装SonarQube的服务端
version: "2"
services:
postgres:
image: postgres:10
restart: always
ports:
- "5432:5432"
environment:
POSTGRES_USER: "sonar"
POSTGRES_PASSWORD: "sonar"
version: "2"
services:
sonarqube:
image: "sonarqube:7.9.4-community"
environment:
SONARQUBE_JDBC_URL: "jdbc:postgresql://192.168.3.208:5432/sonar"
SONARQUBE_JDBC_USERNAME: "sonar"
SONARQUBE_JDBC_PASSWORD: "sonar"
restart: always
ports:
- "8999:9000"
通过admin/admin登录,然后在MyAccount中生成Token令牌并保存
在Jenkins中安装SonarQube Scanner
插件
全局工具配置,新增SonarQube Scanner
,然后在系统配置中添加SonarQubeServer
,添加凭据选择Secret Text
,填入之前生成的Token令牌
添加构建步骤,选择Execute SonarQube Scanner
,Task to run
中填入scan
Analysis properties
填入如下代码
# 唯一标识符
sonar.projectKey=CiCdTest
# 项目名称
sonar.projectName=CiCdTest
# 项目版本
sonar.projectVersion=1.0
# 扫码对象的路径,.表示全部,java一般扫码/src/main/**
sonar.sources=.
# 指定class文件的具体路径
sonar.java.binaries=./target/classes
# 排除扫码对象路径下的部分路径
sonar.exclusions=**/test/**,**/target/**
# 源码的java版本
sonar.java.source=1.8
# 检测的目标java版本
sonar.java.target=1.8
# 源码的编码格式
sonar.sourceEncoding=UTF-8
关于流水线项目,项目下新建文件sonar-project.properties
,此文件的内容和第五步是一样的。
stage('code checking'){
steps{
script {
// 引入全局工具配置中的配置,tool后面指定name
scannerHome = tool 'sonar-scanner'
}
// 引入SonarQube的服务器环境,这里括号里的值填写系统配置中的name
withSonarQubeEnv('sonarqube'){
sh "${scannerHome}/bin/sonar-scanner"
}
}
}