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

时间:2017-07-14 16:39:51

标签: maven jenkins sonarqube

我正在尝试从jenkins job执行以下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]

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

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

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

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

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

[INFO] --- sonar-maven-plugin:3.3.0.603:sonar (default-cli) @ my-stc ---

之前有人遇到同样的问题吗?

7 个答案:

答案 0 :(得分:12)

问题在于sonar-maven插件版本3.3 我尝试使用3.2版本,但它确实有效。我将以下内容传递给maven命令行参数org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar

答案 1 :(得分:4)

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

我的命令

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]

日志的关键部分 http://192.168.56.101:9000/batch/index无效。我可以卷曲此网址,并且可以使用。

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

要检查代理是否存在问题,我在settings.xml中删除了代理条目,然后看到它正在运行并与声纳服务器通信

因此,如果您有代理,则可能要在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>

关于建议人们使用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:错字

答案 2 :(得分:3)

尝试在pom.xml中使用sonar-maven-plugin 3.2版

pom.xml

<properties>
  <sonar.host.url>http://xxxxx:9000</sonar.host.url>
  <sonar.login>be2fe3y27f07db354983dfxysdsa5256</sonar.login>
  <sonar.language>java</sonar.language>
  <sonar.scm.provider>git</sonar.scm.provider>
</properties>
<plugin>
  <groupId>org.sonarsource.scanner.maven</groupId>
  <artifactId>sonar-maven-plugin</artifactId>
  <version>3.2</version>
</plugin>

这对我有用。

答案 3 :(得分:0)

升级以解决声纳版本问题。

org.apache.maven.plugins Maven的编译器插件 3.5.1

答案 4 :(得分:0)

此问题也存在于org.sonarsource.scanner.maven.sonar-maven-plugin 3.5.0插件中。

升级您的POM依赖关系以使用新版本或某些早期版本(如3.2)也很稳定。

org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar

答案 5 :(得分:0)

我认为这是给你的错误,因为程序无法打到你指定的端点。

如果URL已经具有DNS映射,则不应指定端口。 例如,如果http://sonar.yourcompany.com已映射到123.23.22.10:9000

因此,您的-Dsonar.host.url标志应为: -Dsonar.host.url = http://sonar.yourcompany.com

http://sonar.yourcompany.com末尾不需要/声纳

此外,声纳运行在端口9000而不是9095上。

答案 6 :(得分:0)

我们遇到了同样的问题。在我们的案例中,Jenkins和SonarQube都在反向代理后面的同一台计算机上运行。将声纳主机URL更新为http://localhost:9000后,它解决了我们的问题。