当前位置: 首页 > 面试题库 >

为什么SONAR在waitForQualityGate()上失败并出现错误401?

吴炎彬
2023-03-14
问题内容

使用管道代码,

stage ('SonarQube') {
    withSonarQubeEnv {
        dir ('mydir/') {
            sh "'${mvnHome}/bin/mvn' sonar:sonar -Dsonar.login=something -Dsonar.projectKey=someproj -Dsonar.projectName=somename"
        }
    }
    timeout(time: 15, unit: 'MINUTES') {
        def qg = waitForQualityGate()
        if (qg.status != 'OK') {
            error "Pipeline aborted due to quality gate failure: ${qg.status}"
        }
    }

在第一个mvn部分上逐步进行,并在waitforqualitygate()操作上中断:

org.sonarqube.ws.client.HttpException: Error 401 on http://mysonarserver/sonar/api/ce/task?id=somecode

链接是可单击的,并导致填充的json结构。

为什么构建失败?Webhook似乎在声纳中设置正确,并且其他声纳项目正常运行,jenkis中的webhook似乎也处于活动状态。


问题答案:

就像SonarQube Scanner for
Jenkins
的官方文档中所述,您必须waitForQualityGate()在以下范围之外使用withSonarQubeEnv

node {
  stage('SCM') {
    git 'https://github.com/foo/bar.git'
  }
  stage('SonarQube analysis') {
    withSonarQubeEnv('My SonarQube Server') {
      sh 'mvn clean package sonar:sonar'
    } // SonarQube taskId is automatically attached to the pipeline context
  }
}

// No need to occupy a node
stage("Quality Gate"){
  timeout(time: 1, unit: 'HOURS') { // Just in case something goes wrong, pipeline will be killed after a timeout
    def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv
    if (qg.status != 'OK') {
      error "Pipeline aborted due to quality gate failure: ${qg.status}"
    }
  }
}


 类似资料:
  • 我正在尝试使用Codename One构建服务器为J2ME构建我的应用程序。这一直运行良好,但现在我每次都会遇到构建错误。这是日志的摘录,其中在准备输出jar时提到了StackOoverflow Error: 最后一行又重复了1023次,一直到文件的结尾。 我已经将我的源代码重绕到我以前构建的版本,现在也失败了,出现了同样的错误消息。 这可能是我的开发环境发生了变化,还是构建服务器出现了问题? 任

  • 我正在尝试使用命令,但收到的回报是错误: 而且我很确定数据库中并不存在该表,因为数据库完全是空的和干净的。 我使用的是PHP 7.3和MySQL 8.0.18社区版,它们都是在Windows Server 2019上由AMPPS运行的。我用的是Laravel 8

  • https://leetcode.com/problems/balanced-binary-tree/ 给定一棵二叉树,确定它是否是高度平衡的。 对于此问题,高度平衡二叉树定义为二叉树,其中每个节点的两个子树的深度相差不超过 1。 此代码被接受。但是如果我用整数代替-99。MIN_VALUE,我的代码失败。有什么问题? 例如 输入: [1,2,空,3,空,4,空,5] 输出:真 应为:false

  • 我已经安排了一个任务来启动批处理文件。当我使用选项运行任务时 仅在用户登录时运行 一切正常。 我想在后台运行此任务,因此我使用选项运行它 无论用户是否登录,运行。 现在,当我在该参数下运行任务时,它不起作用。我得到以下两个错误: < li >任务计划程序无法启动任务“\stmm\Daemon”的实例“{ 2a 7cc 950-fad 9-4633-9701-af 75 a 0 FD 220d }”

  • 问题内容: 我已经在Windows 7(64位操作系统)中安装了 32位 Python2.7,并且可以正常使用它。此外,我尝试在同一Windows 7中安装 64位 Python3.4和PyQt5。 我按照此链接中给出的步骤进行操作:验证已安装PyQt5软件包。我已经安装了Python3.4和PyQt5的 64位 版本。如给定链接中所述,为了在键入时验证安装:我收到此错误: ImportError

  • 问题内容: 最近,在 Jenkins 中运行的 Maven 构建作业失败,但出现以下异常,原因是它们无法从 Maven Central 提取依赖项,应使用 HTTPS 。我不确定如何将请求从 HTTP 更改为 HTTPS 。有人可以指导我吗? __ [错误] 无法解析的构建扩展: 插件或其依赖项之一无法解析: 无法收集以下项的依赖项: 无法读取以下项的工件描述符: 无法从/到中央传输工件(http