声纳分析导致通过Jenkins在maven项目上索引0个文件

时间:2015-04-14 10:02:32

标签: java maven jenkins sonarqube

我正在尝试通过Jenkins将标准maven项目与SonarQube集成。 SonarQube已经为项目构建添加了一个Post-Build Action。

我可以看到Sonar在构建的控制台输出中正确调用,但它找不到任何要索引的文件。据我所知,声纳分析成功完成,但报告是空的。

从本地SonarQube安装的命令行本地运行的同一命令可以正常工作。

  • Jenkins:1.605
  • 声纳:5.1(与Jenkins在同一台机器上运行,关闭 MySQL DB)
  • Jenkins Maven插件:2.8
  • Jenkins SonarQube插件:2.2

我在Jenkins中添加了SonarQube部分 - >使用服务器URL和DB URL配置Jenkins部分。

SonarQube上构建操作后项目中附加属性的唯一配置参数是-Dsonar.scm.disabled = true,我相信会关闭未提交的文件检查。

    [sonarcore] $ /usr/share/apache-maven/bin/mvn -f /var/lib/jenkins/workspace/sonarcore/myproject-core/pom.xml -e -B sonar:sonar -Dsonar.scm.disabled=true -Dsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8 -Dsonar.host.url=http://localhost:9000/
    [INFO] Error stacktraces are turned on.
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building myproject-core 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- sonar-maven-plugin:2.5:sonar (default-cli) @ myproject-core ---
    [INFO] SonarQube version: 5.1
    INFO: Default locale: "en_US", source code encoding: "UTF-8"
    INFO: Work directory: /var/lib/jenkins/workspace/sonarcore/myproject-core/target/sonar
    INFO: SonarQube Server 5.1
    [INFO] [10:23:00.144] Load global repositories
    [INFO] [10:23:00.327] Load global repositories (done) | time=185ms
    [INFO] [10:23:00.336] Server id: 20150413092802
    [INFO] [10:23:00.338] User cache: /var/lib/jenkins/.sonar/cache
    [INFO] [10:23:00.353] Install plugins
    [INFO] [10:23:00.409] Install JDBC driver
    [INFO] [10:23:00.422] Create JDBC datasource for jdbc:mysql://localhost:3306/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8
    [INFO] [10:23:01.722] Initializing Hibernate
    [INFO] [10:23:03.174] Load project repositories
    [INFO] [10:23:03.198] Load project repositories (done) | time=24ms
    [INFO] [10:23:03.198] Load project settings
    [INFO] [10:23:03.424] Load technical debt model
    [INFO] [10:23:03.447] Apply project exclusions
    [INFO] [10:23:03.647] -------------  Scan myproject-core
    [INFO] [10:23:03.651] Load module settings
    [INFO] [10:23:03.758] Load rules
    [INFO] [10:23:03.826] Base dir: /var/lib/jenkins/workspace/sonarcore/myproject-core
    [INFO] [10:23:03.826] Working dir: /var/lib/jenkins/workspace/sonarcore/myproject-core/target/sonar
    [INFO] [10:23:03.827] Source paths: pom.xml, src/main/java
    [INFO] [10:23:03.827] Test paths: src/test/java
    [INFO] [10:23:03.827] Binary dirs: target/classes
    [INFO] [10:23:03.828] Source encoding: UTF-8, default locale: en_US
    [INFO] [10:23:03.828] Index files
    [INFO] [10:23:03.853] 0 files indexed
    [INFO] [10:23:03.894] Sensor Lines Sensor
    [INFO] [10:23:03.895] Sensor Lines Sensor (done) | time=1ms
    [INFO] [10:23:03.896] Sensor QProfileSensor

我在SO上发现另一个类似的线程,说我需要安装更多的插件,但我无法找到我需要的插件。

Analysing with SonarQube causes 0 files indexed and no reports (Maven Project)

我没有在Jenkins上添加SonarQube Runner,因为我认为不需要它。请参阅此处https://stackoverflow.com/a/13473275/4473028

1 个答案:

答案 0 :(得分:0)

在您的服务器中:

您需要在服务器上安装Sonar runner,并且需要正确设置变量SONAR_RUNNER_HOME

在您的jenkins配置中:

您需要像这样设置sonarQube扫描仪的配置: Sonar configuration in Global Tool Configuration

安装插件后,您可以将其配置为作业配置中的执行步骤。

在您的工作配置中:

您需要在此前的步骤中指明sonar-project.properties文件的路径和sonnar-runner实例,如下所示:sonar step configuration