代理商背后的Jenkins SonarQube扫描仪

时间:2017-05-11 03:31:50

标签: jenkins proxy sonarqube sonarqube-scan

我们的数据中心内有一个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

1 个答案:

答案 0 :(得分:3)

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

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

确保您的代理作为代理服务器名称引用,而不是http://

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