SonarQube:无法从服务器获取引导索引:url [http:// hostname:9095/sonar/batch/index]返回的状态无效:[403]

12 maven jenkins sonarqube

我试图从jenkins工作执行以下maven命令, mvn clean install sonar:sonar -Dsonar.host.url=http://hostname:9095/sonar -Dsonar.projectKey=mavensample -Dsonar.login=admin -Dsonar.password=admin -X

但它失败并出现以下错误,

[DEBUG] 18:20:49.119 Download: http://hostname:9095/batch/index
[ERROR] 18:20:49.176 SonarQube server [http://hostname:9095] can not be reached
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.920 s
[INFO] Finished at: 2017-07-14T18:20:49+02:00
[INFO] Final Memory: 20M/171M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project my-stc: Unable to execute SonarQube: Fail to get bootstrap index from server: Status returned by url [http://hostname:9095/batch/index] is not valid: [403] -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

当我尝试在浏览器中访问http:// hostname:9095时,它可以工作.

我还将sonarqube设置中的基本URL设置为http:// hostname:9095并尝试但是它失败并出现相同的错误.

Sonaqube与maven和jenkins安装在同一台机器上.

我认为这可能是由于代理(可能是我错了),所以我在sonar.properties文件中设置了代理设置并尝试但没有运气.

仅供参考,它正在使用以下版本的sonar-maven插件,

[INFO] --- sonar-maven-plugin:3.3.0.603:sonar (default-cli) @ my-stc ---
Run Code Online (Sandbox Code Playgroud)

有人早先遇到同样的问题吗

小智 14

问题是声纳-maven插件版本3.3我尝试使用版本3.2,它的工作原理.我将以下内容传递给maven命令行参数org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar


Pat*_*kes 5

我最近遇到了一个非常相似的问题对我来说,解决方案与代理设置有关,如果您没有代理,请跳过此答案。

我的命令

mvn clean sonar:sonar -Dsonar.host.url=http://192.168.56.101:9000 -Dsonar.login=admin -Dsonar.password=admin

[INFO] --- sonar-maven-plugin:3.7.0.1746:sonar (default-cli) @ baselineV001-parent ---
[INFO] User cache: /home/developer/.sonar/cache
[ERROR] SonarQube server [http://192.168.56.101:9000] can not be reached
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for baselineV001-parent 1.0.0-SNAPSHOT:

... skipping some info lines for brevity (its a big project)

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project baselineV001-parent: Unable to execute SonarQube: Fail to get bootstrap index from server: Status returned by url [http://192.168.56.101:9000/batch/index] is not valid: [503] -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

日志的关键部分是http://192.168.56.101:9000/batch/index is not valid。我可以卷曲这个网址,它的工作原理。

在稍微思考一下与 curl 的不同之处之后,我在 Maven 设置中设置了一个代理,~/.m2/settings.xml但我没有一个用于 curl 的设置。

为了检查代理是否是问题,我删除了 settings.xml 中的代理条目,然后我看到它工作并与我的 sonarqube 服务器通信

因此,如果您有代理,您可能希望将您的 sonarqube 服务器指定为字段nonProxyHosts中的主机 ~/.m2/settings.xml

  <proxies>
    <proxy>
      <id>intranet-proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <username/>
      <password/>
      <host>proxy.intra.redacted.com</host>
      <port>8080</port>
      <nonProxyHosts>localhost|192.168.56.101</nonProxyHosts>
    </proxy>
  </proxies>
Run Code Online (Sandbox Code Playgroud)

还有一点是关于建议人们使用 v3.2。这可能是一个修复,但它不应该是长期的答案,因为 v3.2 目前已经 3 岁了(2020 年 9 月是 4 岁)。我在其他线程中看到 sonarsource 支持团队说给我们更多关于这个问题的信息,但是在一个较新版本的 sonar-maven-plugin 上。

编辑 1:忘了说我在https://github.com/SonarSource/sonar-scanner-maven的 sonar-maven-plugin 的 v3.3.0.603 中找不到更改,但似乎版本 3.3。 0.603 到当前 (3.7.0.1746) 和可能的未来版本注意代理的 maven 设置。您可能会争辩说这是以前版本中的一个错误,即他们不尊重 maven 的代理设置。编辑2:错字


小智 0

升级解决声纳版本问题。

org.apache.maven.plugins maven-compiler-plugin 3.5.1