如何将Jenkins与SonarQube 4.3连接?

时间:2017-01-09 15:38:25

标签: maven jenkins sonarqube sonarqube-scan

我尝试将构建作业从Hudson迁移到Jenkins(版本2.32.1)。 Maven构建工作正常,但SonarQube的Maven构建步骤不起作用。我使用Jenkins SonarQube插件版本2.5。

我的SonarQube配置(Adding SonarQube Scanner之后):

SonarQube configuration

我的构建环境(Configuring a SonarQube Scanner using environment variables之后):

Build enviroment

My Maven构建步骤(Analyzing with SonarQube Scanner for Maven之后):

Build step

Jenkins控制台日志:

[INFO] SonarQube version: 4.3
INFO: Default locale: "en_US", source code encoding: "cp1252"
INFO: Work directory: /home/jenkins/.jenkins/jobs/test/workspace/target/sonar
INFO: SonarQube Server 4.3
[INFO] [15:34:56.104] Load batch settings
[INFO] [15:34:56.248] User cache: /home/jenkins/.sonar/cache
[INFO] [15:34:56.254] Install plugins
[INFO] [15:34:56.320] Install JDBC driver
[WARN] [15:34:56.329] H2 database should be used for evaluation purpose only
[INFO] [15:34:56.329] Create JDBC datasource for jdbc:h2:tcp://localhost/sonar
[ERROR] Fail to connect to database

日志显示,Jenkins使用了错误的数据库URL(H2而不是PostgreSQL)。

我错了什么?

1 个答案:

答案 0 :(得分:3)

我找到了解决办法。我查看了Jenkins SonarQube插件的source code(因为我找不到文档)并找到了公开环境变量的列表:

       

        注入与所选SonarQube安装相关的环境变量。         
        可以根据配置设置以下变量:     

            
  • SONAR_HOST_URL
  •         
  • SONAR_AUTH_TOKEN
  •         
  • SONAR_LOGIN
  •         
  • SONAR_PASSWORD
  •         
  • SONAR_JDBC_URL
  •         
  • SONAR_JDBC_USERNAME
  •         
  • SONAR_JDBC_PASSWORD
  •         
  • SONAR_EXTRA_PROPS
  •         
  • SONAR_MAVEN_GOAL - 根据为SonarQube实例指定的“sonar-maven-plugin版本”提供正确的Maven目标。
  •     
    
    使用标准构建步骤(如Maven,Gradle,Ant和命令行脚本)配置SonarQube分析时,这些变量非常有用。       如果您使用“SonarQube扫描仪”或“SonarQube扫描仪进行MSBuild”构建步骤,则不需要此功能。     

  

-Dsonar.jdbc.url=$SONAR_JDBC_URL添加到构建步骤后:

enter image description here 它工作正常。