【发布时间】: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