安装插件
Build Pipeline Plugin
SonarQube Scanner for Jenkins
Blue Ocean
添加sonar server
Jenkins -> 系统管理 -> 系统设置 -> SonarQube servers->添加
添加sonar scanner
Jenkins -> 系统管理 -> 全局工具配置 -> SonarQube Scanner->添加
项目目录结构
yum -y install tree
[root@yfm07 web1]# tree
.
├── aaa.txt
├── README.md
├── sonar-project.properties
└── src
└── aa.java
1 directory, 4 files
[root@yfm07 web1]# cat src/aa.java
public class aa {
public static void main(String[] args) {
System.out.println("hello world");
}
}
[root@yfm07 web1]# cat sonar-project.properties
# must be unique in a given SonarQube instance
sonar.projectKey=cynomys:0.0.1
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=cynomys
sonar.projectVersion=0.0.1
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.projectBaseDir=src
sonar.binaries=classes
sonar.exclusions=**/test/**,**/target/**
sonar.java.source=1.8
sonar.java.target=1.8
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
在项目构建这一步,选择增加构建步骤,在可以选择的步骤里面,选择执行Sonar Scanner,选择JDK和SonarQube Scanner插件,并且配置项目Properties:
#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=xjglxt
sonar.projectName=xjglxt
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module
# Java module
java-module.sonar.projectName=Java Module
java-module.sonar.language=java
# .表示projectBaseDir指定的目录
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
sonar.binaries=classes
新增pipline模式job
pipline script,如果使用ssh方式复制代码,需要通过credentialsId参数配置Jenkins中配置好的秘钥ID
#tool name: 'SonarQube Scanner'等于全局工具配置里面配置的scanner name
#withSonarQubeEnv('SonarQube') 等于系统设置里面sonarqube name
node {
stage('SCM') {
git([url: '[email protected]:develop/web1.git', branch: 'master', credentialsId: '192.168.199.101'])
}
stage('SonarQube analysis') {
def sonarqubeScannerHome = tool name: 'SonarQube Scanner'
withSonarQubeEnv('SonarQube') {
sh "${sonarqubeScannerHome}/bin/sonar-scanner"
}
}
}
参考: