我们正在尝试添加Sonarqube扫描作为Jenkins管道脚本的一部分.我们有一个多模块maven项目,我们正在使用Maven Sonarqube插件来运行聚合扫描.要启动扫描,我们按照此处所示的Sonarqube文档中的说明进行操作(向下滚动到页面末尾).
所以管道脚本看起来像这样:
node {
stage('SonarQube analysis') {
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}"
}
}
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是由于我们在多个文件中使用它,我们希望尽可能减少重复代码,因此我们希望将它放在节点中,如下所示:
node {
stage('SonarQube analysis') {
withSonarQubeEnv('My SonarQube Server') {
sh 'mvn clean package sonar:sonar'
}
}
stage("Quality Gate") {
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate() …Run Code Online (Sandbox Code Playgroud)