如何在jHipster项目中使用外部声纳服务器

时间:2017-06-12 08:38:58

标签: spring maven spring-boot jhipster

我目前正在使用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]

2 个答案:

答案 0 :(得分:0)

声纳文档中解释了所有内容:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

您应该使用以下内容编辑~/.m2目录中的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>

答案 1 :(得分:0)

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

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

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