Jenkins集成SonarQube
1.Jenkins配置
使用管理员登录Jenkins.
1.1 使用管理员登录Jenkins安装SonarQube插件 SonarQube Scanner for Jenkins
(注意不同Jenkins版本,显示的插件名称略有差异)
1.2 配置 Sonarqube,依次点击: 系统管理
-> 系统配置
-> 新增一个Sonarqube
1.3 配置 SonarScanner,依次点击: 系统管理
-> 全局工具配置
-> 新增一个SonarScanner
2.Jenkinsfile配置
Python示例
# 在项目的根路径下创建 sonar-project.properties 文件,执行sonar-scanner时就不用显示的指定 sonar.projectKey 参数了, 内容如下:
#
# sonar.projectKey=sonar_pythonapp_AYm3JkyS6upJ4s3JUiqn
#
stage('SonarQube Analysis') {
environment {
// Set the scannerHome variable to the SonarScanner tool path
// 在全局工具配置中配置 SonarScanner, 变量值就是配置的 SonarQube Scanner Name
scannerHome = tool 'SonarScanner'
}
steps {
// withSonarQubeEnv('sonarqube') 表示在SonarQube环境中运行
// 在系统管理-系统配置中配置 SonarQube servers
// 1. 选中 environment variables
// 2. Nmae 输入 sonarqube,表示SonarQube服务器的名称
withSonarQubeEnv('sonarqube'){
// 添加参数 -Dsonar.branch.name=${gitlabSourceBranch}"
sh "${scannerHome}/bin/sonar-scanner
}
}
}
Java示例
在项目的根路径下没有创建 sonar-project.properties
文件,在执行 sonarscanner
时需要显示的指定 sonar.projectKey
等参数.
stage('SonarQube Analysis') {
environment {
// 在全局工具配置中配置 maven, 变量值就是配置的 Maven Name
// Set the maven variable to the maven tool path
mvn = tool 'maven'
}
steps {
// withSonarQubeEnv('sonarqube') 表示在SonarQube环境中运行
// 在系统管理-系统配置中配置 SonarQube servers
// 1. 选中 environment variables
// 2. Nmae 输入 sonarqube,表示SonarQube服务器的名称
withSonarQubeEnv('sonarqube'){
// sh "${mvn}/bin/mvn findbugs:findbugs"
sh "${mvn}/bin/mvn clean verify sonar:sonar -Dsonar.projectKey=sonar_mxnet-spring-samples_AYnjWl7-6upJ4s3JUirg"
}
}
}