【发布时间】:2020-11-13 12:10:02
【问题描述】:
我有一个 Jenkins Maven 项目,它为我的构建运行 SonarQube 分析。我想添加质量门,以便在质量门失败时我的构建失败。我也想在没有 Jenkinsfile 的情况下这样做(所以只使用 Jenkins 项目配置)。目前,我使用构建部分来执行 SonarQube 分析。 “目标和选项”字段包含以下代码:
clean package -Dmaven.test.skip=true sonar:sonar -Dsonar.projectKey=someName -Dsonar.sources=src/main/java
我希望在这里定义和实施质量门:
我尝试将 Quality Gate 添加到“构建后”部分,但没有可用的选项对我有用(我正在考虑尝试使“使用 Maven 的 SonarQube 分析”选项起作用,但现在已弃用)。我还发现 Jenkins 可以使用“Quality Gate”插件,但它有一个我不想拥有的漏洞(但想知道是否有其他插件可以替代)。
我认为“Pre-Steps”部分中的“Execute SonarQube Scanner”选项可能会做到这一点,但我找不到需要添加到 sonar-project.properties 文件中的正确行(是否有类似的行sonar.qualityGateFailBuild = true 选项?)
This 此处的问题提到 Maven 版本是一个问题。想知道是否有可能解决它? (我的maven版本是3.8.0,不能改)
更新
找到允许配置 sonar.property 文件的“后步骤”部分。目前,它如下所示,但 Quality Gate 仍然没有使我的构建失败。我还需要添加哪些其他参数?:
【问题讨论】:
-
你想达到什么目的??目前还不清楚。你能在 cmets 中写下你想要的吗?
-
@SouravAtta 我想要一个质量门,这样当 QG 失败时我的构建就会失败。我在 Jenkins 中有一个 Maven 项目,它使用“配置”选项允许我从所述“配置”选项的“构建”部分执行我的项目。目前,它只扫描我的项目并生成分析,但当 QG 失败时会停止我的构建
-
@SouravAtta 添加了一张图片,希望能阐明我的目标
-
如果没有声纳分析,您将无法根据质量门使您的管道失败。您可以使用
Quality Gate Plugin。在您的管道配置中,在 Post Build Actions 下,选择Wait for QualityGate选项。这将有助于根据 QualityGate 状态使管道失败。 -
@SouravAtta 这是我最初的计划,但它有漏洞,不幸的是,这不是我可以容忍的。是否可以在其中一个前置步骤中同时运行 SQ 分析和 QG?例如,是否可以配置“执行 SonarQube 扫描仪”选项来完成所有工作?还是需要先构建部分?
标签: jenkins sonarqube maven-plugin