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 中自动读取。
相比之下,
- 启用 "Prepare SonarQube Scanner environment" 构建环境选项和
- 设置一个看起来(字面上!)像这样的 mvn 构建步骤
sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN
好像是鸡饲料。
我有以下情况:
服务器配置: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 中自动读取。
相比之下,
- 启用 "Prepare SonarQube Scanner environment" 构建环境选项和
- 设置一个看起来(字面上!)像这样的 mvn 构建步骤
sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN
好像是鸡饲料。