【问题标题】:Jenkins SonarQube Scanner Behind a Proxy代理背后的 Jenkins SonarQube 扫描仪
【发布时间】:2017-10-09 21:41:49
【问题描述】:

我们在数据中心和代理后面设置了 Jenkins 服务器。
我们试图让那台机器在 repo 上运行 SonarQube Scanner,并将结果发布到我们网络之外的 SonarQube 服务器(在 AWS 中)。

作业正确启动 Sonar Scanner,但在尝试连接到我们的 SonarQube 服务器时失败:

22:12:31.612 DEBUG: keyStore is : 22:12:31.613 DEBUG: keyStore type is : jks 22:12:31.613 DEBUG: keyStore provider is : 22:12:31.613 DEBUG: init keystore 22:12:31.613 DEBUG: init keymanager of type SunX509 22:12:31.682 INFO: User cache: /zdata/jenkins/.sonar/cache 22:12:31.683 DEBUG: Extract sonar-scanner-api-batch in temp... 22:12:31.687 DEBUG: Get bootstrap index... 22:12:31.687 DEBUG: Download: http://my-sq-server.com/batch/index 22:12:31.713 ERROR: SonarQube server [http://my-sq-server.com] can not be reached

我阅读了Sonar Runner Behind a Proxy 并尝试将这些值放入 JVM 选项部分和附加选项部分,但它们似乎没有任何区别。

为了解决这个问题,我通过一个 bash 脚本在 Jenkins 作业中添加了一个简单的 curl 步骤,并让它在同一个服务器上运行良好。

我确定我只是在这里遗漏了一个小细节,但我是 SQ 的新手,不知道还能去哪里找。

更新

当前输出显示如下:

/zdata/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/scanner-3.0.1.733/bin/sonar-scanner -Dhttp.proxyHost=proxy.hostname.com -Dhttp.proxyPort=8080 -e -Dsonar.host.url=http://my-sonarqube-server.com ******** -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=. -Dsonar.language=js -Dsonar.exclusions=__tests__/**,**/node_modules/**,coverage/** -Dsonar.projectVersion=1.0 -Dsonar.projectKey=repo-key -Dsonar.verbose=true -Dsonar.javascript.lcov.reportPath=coverage/lcov.info -Dsonar.tests=__tests__ "-Dsonar.projectName=Project Name" -Dsonar.projectBaseDir=/zdata/jenkins/workspace/my-project

【问题讨论】:

  • 您能准确了解您正在使用的扫描仪版本吗?在最近的版本中,我们围绕代理进行了多项改进。
  • 3.0.1.733(和适用于 Jenkins 2.6.1 的 SonarQube 扫描仪)
  • 尝试将-Djavax.net.debug=all 传递给JVM 选项。这将记录网络相关操作。这是非常冗长的,但应该有助于理解发生了什么。如果您无法“读取”输出,我建议您在 SonarQube 用户组上创建一个新线程。 SO 不适合调查问题。

标签: jenkins proxy sonarqube sonarqube-scan


【解决方案1】:

检查您的代理是否需要身份验证:您可能需要添加

-Dhttp.proxyUser=username -Dhttp.proxyPassword=password

确保您的代理被引用为代理服务器名称,没有http://

-Dhttp.proxyHost=myproxy (not -Dhttp.proxyHost=http://myproxy)

【讨论】:

  • 我添加了 Jenkins 的当前日志输出。我们的代理不需要身份验证。
猜你喜欢
  • 2021-07-05
  • 2017-02-06
  • 2018-07-16
  • 2016-12-10
  • 2017-02-05
  • 2017-02-20
  • 2017-02-12
  • 2018-08-01
  • 2017-04-27
相关资源
最近更新 更多