You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jenkins Blue Ocean构建流水线添加SonarQube分析时提示「此阶段无步骤」

解决Jenkins Blue Ocean中SonarQube分析阶段提示“No steps This stage has no steps”的问题

我一眼就看出问题所在了——你的Analysis阶段在非develop分支下没有任何可执行的步骤,Blue Ocean会把这种情况判定为“空阶段”,从而抛出这个提示。

问题根源

先看你提供的代码:

stage('Analysis') { 
  steps { 
    script { 
      if (env.BRANCH_NAME == 'develop') { 
        withSonarQubeEnv('SonarQube Server') { 
          bat 'mvn sonar:sonar' 
          def qualitygate = waitForQualityGate() 
          if (qualitygate.status != "OK") { 
            error "Pipeline aborted due to quality gate coverage failure: ${qualitygate.status}" 
          } 
        } 
      } 
    } 
  } 
}

当分支不是develop时,if条件不成立,整个script块里没有任何代码执行,相当于这个steps下没有实际运行的步骤。Blue Ocean的UI会严格检查每个阶段是否有可执行步骤,自然就会报错。

两种解决方案

方案1:给非develop分支添加占位步骤

在if的else分支里加一个简单的步骤,比如打印日志或者标记阶段跳过,让Blue Ocean识别到这个阶段有内容:

stage('Analysis') { 
  steps { 
    script { 
      if (env.BRANCH_NAME == 'develop') { 
        withSonarQubeEnv('SonarQube Server') { 
          bat 'mvn sonar:sonar' 
          def qualitygate = waitForQualityGate() 
          if (qualitygate.status != "OK") { 
            error "Pipeline aborted due to quality gate coverage failure: ${qualitygate.status}" 
          } 
        } 
      } else {
        // 给非develop分支添加占位步骤,避免空阶段报错
        echo "Skipping SonarQube analysis: only run on develop branch"
      } 
    } 
  } 
}

方案2:用when条件控制整个阶段的执行(更推荐)

直接用Jenkins Pipeline的when指令,只在develop分支才执行这个Analysis阶段,这样非develop分支下这个阶段会被直接跳过,不会出现在Blue Ocean的流程里:

stage('Analysis') { 
  when {
    branch 'develop'
  }
  steps { 
    script { 
      withSonarQubeEnv('SonarQube Server') { 
        bat 'mvn sonar:sonar' 
          def qualitygate = waitForQualityGate() 
          if (qualitygate.status != "OK") { 
            error "Pipeline aborted due to quality gate coverage failure: ${qualitygate.status}" 
          } 
        } 
      } 
    } 
  } 
}

这种方式更符合Pipeline的最佳实践,流程逻辑更清晰,Blue Ocean也不会再提示空阶段的问题。

额外提示

如果使用方案2,你还可以在when里添加更多条件(比如标签、构建原因等),让SonarQube分析的执行规则更灵活。

内容的提问来源于stack exchange,提问作者JimmyD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:44:02