安装Sonarqube6.4
安装Jenkins的插件
- pipeline
- blue ocean
- SonarQube Scanner
SonarQube Scanner说明文档如下
其实这个说明已经非常清楚了
- Sonarqube服务器必须是6.2以上的,满足要求。
-
通过管理员权限Sonarqube配置webhook
-
Jenkins配置Sonarqube服务器,进入系统配置
PS: sonarqube的server URL后面一定不能有反斜杠。
- Jenkins服务器的Maven配置,setting文件增加以下代码
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://${sonarqubeUrl}</sonar.host.url>
</properties>
</profile>
<profile>
${sonarqubeUrl} 替换自己的服务器地址。
pipeline说明
stage("build & SonarQube analysis") {
node {
withSonarQubeEnv('My SonarQube Server') {
sh 'mvn clean package sonar:sonar'
}
}
}
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
build & SonarQube analysis 分析项目
Quality Gate 监听Webhook返回的结果,所以必须保证sonarqube中已经正确配置,否则会一直监听,所以增加了timeout的超时配置。防止卡死,但是没有必要配置1个小时,如果正常应该秒级可以返回。这样才能真正的控制流程,不然sonarqube失败也继续构建就不合理了。