【问题标题】:Configure Multiple SonarQube Instances in a Gradle Build在 Gradle 构建中配置多个 SonarQube 实例
【发布时间】:2018-03-21 15:12:52
【问题描述】:

在我们的 CI 环境中,我们目前有一个构建服务器(基于 Atlassian Bamboo)和两个 SonarQube 实例(版本 6.0 和 6.5)。最初,我们的 CI 服务器配置为与 6.0 SonarQube 实例进行通信。这已在我们的 CI 服务器上的 /home/bamboo/.gradle/gradle.properties 文件中进行配置,如下所示:

systemProp.sonar.host.url=<http url of SonarQube 6.0 instance>
systemProp.sonar.login=<username here>
systemProp.sonar.password=<password here>

现在我们的 CI 服务器上运行了另一个基于 Gradle 的项目,它将与新的 SonarQube 6.5 实例通信。我尝试过配置,但一直失败。

到目前为止我做过的事情:

为 gradle wrapper 命令添加了命令行参数: 我尝试将-Dsonar.host.url=-Dsonar.login=-Dsonar.password= 添加到 Gradle 命令中。由于这似乎不起作用,我还尝试使用-DsystemProp.sonar.host.url=-DsystemProp.sonar.login=-DsystemProp.sonar.password= 将命令行参数设置为 SonarQube 系统属性。这也不起作用。

向 build.gradle 文件添加属性 - 向build.gradle 文件添加属性,如下所示:

sonarqube {
    properties {
        property "sonar.host.url", "<http url of SonarQube 6.0 instance>"
        property "sonar.login", "<username here>"
        property "sonar.password", "<password here>"
        ...<other SonarQube analysis settings here>...
    }
}

在所有情况下,CI 服务器都与错误的 SonarQube 实例 (6.0) 通信。我的问题是,是否可以配置一个项目来与另一个 SonarQube 实例通信。如您所见,我们使用 Gradle 3.2.1 作为构建工具。我们也在使用 org.sonarqube Gradle 插件。

感谢您的帮助。

安德烈

【问题讨论】:

    标签: gradle continuous-integration sonarqube build.gradle bamboo


    【解决方案1】:

    您的第一次尝试没有成功,因为您从命令行设置了系统属性,但稍后从项目属性中设置它会将系统属性重置为配置的值。

    您的第二次尝试没有成功,因为 systemProp.sonar.login 语法仅支持在 gradle.properties 文件中,而不是通过 -P 命令行项目属性。

    您的第三次尝试没有奏效,因为 SonarQube 扫描器更喜欢系统属性值而不是通过 DSL 配置的值,因此可以在本地配置的帮助下更改构建脚本中的配置。

    您需要在构建脚本中手动设置系统属性,然后覆盖项目属性中自动设置的内容。使用项目gradle.properties 文件不起作用,因为用户文件会覆盖项目文件。因此,您的构建脚本中需要类似 System.properties.'sonar.login' = '...' 的内容。您可以在那里对其进行硬编码,或者然后使用可以在gradle.properties 文件中或通过-P 参数设置的项目属性。


    除此之外,我永远不会依赖在构建服务器上的 Gradle 用户目录中进行任何配置。大多数构建服务器使用可能在分布式机器上运行的构建代理,因此您必须始终确保所有构建代理的配置相同,依此类推。我总是在构建服务器的构建设置中配置相应的配置,方法是设置系统属性、环境属性或命令行参数。

    只是我的 2ct。

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 2013-01-24
      • 2015-10-14
      • 2016-01-07
      • 2016-12-08
      • 1970-01-01
      • 2019-09-06
      • 2015-11-05
      • 1970-01-01
      相关资源
      最近更新 更多