【问题标题】:How to use external sonar server for jHipster project如何为 jHipster 项目使用外部声纳服务器
【发布时间】:2017-06-12 08:38:58
【问题描述】:

我目前正在使用 jHipster 开发一个 Spring Boot 应用程序,我想使用我公司现有的声纳服务器来分析代码。 JHipster 仅描述了一种从 docker 容器使用内置声纳服务器的方法。不幸的是,这不是我的选择,因为我的机器在 Windows Server 2012 上运行,docker 不支持。 我已经尝试通过将服务器 url 作为构建参数添加到 maven 构建来启动 maven 构建,但它忽略了它。

mvn clean test sonar:sonar -Dsonar.host.url=http://server-ip:server-port/ -Dsonar.login=login -Dsonar.password=pw

我对该主题相对较新,并且正在使用 jhipster 参考页面 (https://jhipster.github.io/code-quality/) 给出的命令,因此测试配置文件应该是用于此目的的正确配置文件。 当我运行该命令时,它会忽略给定的 url 参数,并仍然尝试使用 localhost,它期望在 docker 容器中使用声纳。

08:31:53.473 INFO  - Create JDBC datasource for 
jdbc:h2:tcp://localhost/sonar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 55.017 s
[INFO] Finished at: 2017-06-12T08:31:53+00:00
[INFO] Final Memory: 65M/392M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project project: Fail to connect to database: Cannot load JDBC driver class 'org.h2.Driver' -> [
Help 1]

由于 jHipster 在后台生成和配置了很多东西,我不知道我是否在这里遗漏了一些重要的东西。也许我必须调整一个配置文件?我真的很感激帮助。

pom.xml是jHipster生成的,maven插件配置如下:

 <plugin>
   <groupId>org.sonarsource.scanner.maven</groupId>
   <artifactId>sonar-maven-plugin</artifactId>
   <version>${sonar-maven-plugin.version}</version>
 </plugin>

版本在属性中设置为:

<sonar-maven-plugin.version>3.2</sonar-maven-plugin.version>

我尝试按照 jHipster 团队的建议在一个运行本地 docker 声纳实例的 linux vm 上设置我的项目,它运行良好,这对我来说非常不方便,因为我有一个可用的公司声纳实例在内网。

我还尝试按照建议修改我的 settings.xml,但它被忽略了,尽管它会导致看起来不同的错误消息:

[INFO] --- sonar-maven-plugin:3.2:sonar (default-cli) @ project ---
[INFO] User cache: C:\Users\Administrator\.sonar\cache
[ERROR] SonarQube server [http://localhost:9000] can not be reached
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:12 min
[INFO] Finished at: 2017-06-14T11:29:22+00:00
[INFO] Final Memory: 57M/408M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project project: Unable to execute SonarQube: Fail to download libraries from server: Status r
eturned by url [http://localhost:9000/batch_bootstrap/index] is not valid: [404] -> [Help 1]

【问题讨论】:

标签: spring maven spring-boot jhipster


【解决方案1】:

一切都在声纳文档中进行了解释:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

您应该使用以下内容编辑 ~/.m2directory 中的 settings.xml 文件:

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

【讨论】:

  • 我尝试按照建议修改 settings.xml 文件,但它仍在尝试访问本地主机上的声纳实例并忽略更改。只有错误消息发生了变化。我编辑了原始帖子以显示其他错误消息。
【解决方案2】:

尝试将以下行添加到 pom.xml 文件的属性部分。

<sonar.host.url>http://1.2.3.4:9000/</sonar.host.url>

使用与您的 sonarqube 服务器对应的 IP 地址。

【讨论】:

    猜你喜欢
    • 2017-05-09
    • 2021-11-16
    • 2015-09-24
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2015-11-05
    • 2020-05-10
    相关资源
    最近更新 更多