【问题标题】:SonarQube: Fail to get bootstrap index from server: Status returned by url [http://hostname:9095/sonar/batch/index] is not valid: [403]SonarQube:无法从服务器获取引导索引:url [http://hostname:9095/sonar/batch/index] 返回的状态无效:[403]
【发布时间】:2017-12-19 20:18:08
【问题描述】:

我正在尝试从 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]

当我尝试在浏览器中访问 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 ---

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

【问题讨论】:

  • 由于Jenkins和SonarQube在同一台机器上,或许你可以试试http://localhost:9095
  • 运气不好。同样的错误,[DEBUG] 09:37:25.105 Download: http://localhost:9095/batch/index [ERROR] 09:37:25.264 SonarQube server [http://localhost:9095] can not be reached
  • 将 127.0.0.1 或 localhost 替换为机器的网络 IP(如果只在同一台机器上运行)

标签: maven jenkins sonarqube


【解决方案1】:

问题在于 sonar-maven 插件版本 3.3 我尝试了 3.2 版,它工作正常。我将以下内容传递给 maven 命令行参数 org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar

【讨论】:

    【解决方案2】:

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

    我的命令

    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 中删除了代理条目,然后我看到它正在工作并与我的 sonarqube 服务器通信

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

      <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 岁(4 岁到 2020 年 9 月)。我在其他线程中看到 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:错字

    【讨论】:

    • 你真的让我免于在这个问题上搜索一整天。
    【解决方案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>
    

    这对我有用。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

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

          升级您的 POM 依赖项以使用新版本或某些更早的版本(如 3.2)也是稳定的。

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

          【讨论】:

            【解决方案7】:

            我认为它给了您错误,因为程序无法到达您指定的端点。

            如果 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 末尾不需要 /sonar

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

            【讨论】:

              【解决方案8】:

              01 - 首先,你应该去 maven 中心 url: https://repo.maven.apache.org/maven2/org/sonarsource/scanner/maven/sonar-maven-plugin/

              02 - 然后找到低于 3 年的 sonar-maven-plugin 标签。例如,我们是在 2022 年,那么您应该选择 [2022-2019] 之间的一个

              03 - 最后在你的 mvn verify 命令中添加整个插件标签??

              mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar
              

              04 - 重新运行你的命令,万岁 ?

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-08-09
                • 2020-08-23
                • 1970-01-01
                • 2017-03-16
                • 2022-12-29
                • 2016-09-14
                • 2020-06-21
                • 2016-12-18
                相关资源
                最近更新 更多