我们的数据中心内有一个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
答案 0 :(得分:3)
检查您的代理是否需要身份验证:您可能需要添加
-Dhttp.proxyUser=username -Dhttp.proxyPassword=password
确保您的代理作为代理服务器名称引用,而不是http://
:
-Dhttp.proxyHost=myproxy (not -Dhttp.proxyHost=http://myproxy)