【问题标题】:How to connect Jenkins with SonarQube 4.3?如何将 Jenkins 与 SonarQube 4.3 连接起来?
【发布时间】:2017-05-23 22:05:19
【问题描述】:

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

我的 SonarQube 配置(遵循Adding SonarQube Scanner):

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

我的 Maven 构建步骤(遵循Analyzing with SonarQube Scanner for Maven):

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)。

我做错了什么?

【问题讨论】:

  • 我强烈更新以将您的版本更新到 5.6.3 (LTS)
  • @Teryk - SonarSource 团队:我已经有一个用于 Java 8 构建作业的 SonarQube 5.6.3 实例。但是对于 Java 6 和 Java 7 构建作业,我需要旧的 SonarQube 4.3 实例。
  • 您可以在 SQ 5.6+ 上分析 Java 6 和 7 项目。用你喜欢的任何方式编译,但运行分析使用 Java 8
  • @G。 Ann - SonarSource 团队:不幸的是,Jenkins 没有使用不同的 JDK/JRE 运行构建步骤的功能。我只能为整个构建作业选择一个 Java 版本。
  • @G。 Ann - SonarSource 团队:在 Hudson,我可以将 SonarQube 扫描作为构建后操作运行并使用不同的 JDK/JRE,但这对于 Jenkins 是不可能的。

标签: maven jenkins sonarqube sonarqube-scan


【解决方案1】:

我找到了解决方法。我查看了 Jenkins SonarQube Plugin 的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 Scanner”或“SonarQube Scanner for MSBuild”构建步骤,则不需要此功能。

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

它工作正常。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2020-12-25
    • 2020-02-25
    • 2019-12-16
    • 2016-10-02
    • 2018-04-06
    • 2021-02-23
    相关资源
    最近更新 更多