0

运行 MSBuild.SonarQube.Runner.exe(2.0 版)时,我收到以下错误:

SonarQube Scanner for MSBuild 2.0
Default properties file was found at C:\path-to-sonar\SonarQube.Analysis.xml
Loading analysis properties from C:\path-to-sonar\SonarQube.Analysis.xml
Pre-processing started.
Preparing working directories...
Checking for updates...

Unhandled Exception: System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
   at System.Net.WebClient.DownloadFile(Uri address, String fileName)
   at System.Net.WebClient.DownloadFile(String address, String fileName)
   at SonarQube.Bootstrapper.BuildAgentUpdater.TryUpdate(String hostUrl, String targetDir, ILogger logger)
   at SonarQube.Bootstrapper.Program.PreProcess(IBuildAgentUpdater updater, IBootstrapperSettings settings, ILogger logger)
   at SonarQube.Bootstrapper.Program.Execute(String[] args, IBuildAgentUpdater updater, ILogger logger)
   at SonarQube.Bootstrapper.Program.Main(String[] args)

这是在 Jenkins Windows slave 上运行的,实际上,它确实需要代理身份验证。SonarQube 服务器与 Jenkins 主服务器或从服务器不同。

服务器上的更新中心已关闭,我什至尝试在 SonarQube.Analysis.xml 文件中包含以下属性(只是为了笑):

<Property Name="sonar.updatecenter.active">false</Property>

是否可以关闭 MSBuild SonarQube Runner 中的更新功能?

4

1 回答 1

1

尽管可能令人困惑,但此Checking for updates日志与更新中心完全无关。这意味着 Scanner 正在与 SonarQube 服务器对话以检查一些更新的二进制文件。所以请放心,它不会尝试访问公共更新中心 URL。

最后我检查了扫描仪不支持代理身份验证。但是我会假设 Jenkins slaves/master 和 SonarQube 服务器位于同一个网络位置,即不被代理分隔。我建议您将 SonarQube 的 URL 列入白名单,以便扫描仪直接联系它而无需通过代理。

更新:SonarQube Scanner 端正在提供新功能,包括代理身份验证。有关更多详细信息,请参阅SCANNERAPI-77(它链接到特定于每个扫描器的票证)。

于 2016-04-05T07:13:24.720 回答