Jenkins 和 SonarQube Scanner 配置离线工作

Jenkins and SonarQube Scanner configuration to work offline

我有以下情况:

服务器配置:Jenkins 版本。 2.7.1、SonarQube 插件 2.4.4

我的工作是使用 SonarQube 检查一些质量指标。 SonarQube 服务器在 Jenkins 中配置良好,运行良好。

直到现在我都使用 SonarQube Scanner 作为 post 构建步骤,但现在不推荐这样做了。

然后我将其更改为构建步骤并...

...配置 SonarQube Scanner 构建步骤后

SonarCube Scanner Configuration

,我开始构建工作,然后我得到:

Skipping installation of https://repo1.maven.org/maven2/org/sonarsource/scanner/cli/sonar-scanner-cli/2.6.1/sonar-scanner-cli-2.6.1.zip to /.../.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Sonar_Runner: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 403 Forbidden"
------------------------------------------------------------------------
SONAR ANALYSIS FAILED
------------------------------------------------------------------------
FATAL: SonarQube Scanner executable was not found for Sonar Runner
Build step 'Execute SonarQube Scanner' marked build as failure

好的。那是真实的。不允许从 Internet 直接下载任何内容到构建服务器。

页面Analyzing with SonarQube Scanner没有介绍这种后台自动下载以及如何配置的内容

以下是我在 Jenkins 中看到的所有 SonarCube 选项:

    SonarQube servers

    Environment variables
    SonarQube installations

    Name
    Server URL
    Server version
    Server authentication token
    SonarQube account login
    SonarQube account password
    Version of sonar-maven-plugin
    Additional arguments
    Additional analysis properties
    Database URL
    Database login
    Database password

    Skip if triggered by SCM Changes
    Skip if triggered by the build of a dependency
    Skip if environment variable is defined and set to true

我尝试将代理设置为 JAVA_OPTS 或环境变量,但这没有帮助,无论如何我对此不会很高兴。

有人找到离线使用 SonarQube Scanner 的方法了吗?

备注:使用 sonar:sonar 设置正常的 maven 构建步骤不是很舒服,因为每个作业都应手动配置并显式调用 SonarQube 服务器(包括完整参数化)。

针对您的问题:您可以手动下载 SonarQube Scanner,将其放在 Jenkins server/slaves 上并在全局配置中(Jenkins > 管理 Jenkins > 配置系统,使其可供 Jenkins 使用 ) 配置它的路径。取消选中 "Install automatically".

后,您将看到用于配置路径的输入

针对您的情况:如果您之前使用的是 Post Build Action,那么您正在谈论的是 Maven 作业。你说你不想使用标准的 mvn 构建步骤,因为每个作业都需要配置。我认为将 Maven 作业切换为使用 SonarQube Scanner 会带来更高的配置负担:现在您必须手动配置每个分析 属性,而不是让它们从 pom 中自动读取。

相比之下,

  1. 启用 "Prepare SonarQube Scanner environment" 构建环境选项和
  2. 设置一个看起来(字面上!)像这样的 mvn 构建步骤 sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN

好像是鸡饲料。