【问题标题】:Analysing a Java Gradle project on SonarQube.com with Travis CI使用 Travis CI 分析 SonarQube.com 上的 Java Gradle 项目
【发布时间】:2017-02-01 03:32:53
【问题描述】:

我有一个托管在 GitHub 上并连接到 travis CI 的 Java Gradle 项目。

在这个项目的根上,我有:

.travis.yml

language: java

addons:
  sonarqube: true
env:
  global:
    - secure: <the token generated on sonarqube.com>
script:
  gradle check

.sonarsource.properties

wallboard.teamAtSonarSource=support
sonar.host.url=http://sonarqube.com

build.gradle

// Uses DSL plugins resolution introduced in Gradle 2.1
plugins {
  id "java"
  id "jacoco"
  id "org.sonarqube" version "1.2"
}

sonarqube {
    properties {
        property "sonar.projectName", "Java :: Simple Project :: SonarQube Scanner for Gradle"
        property "sonar.projectKey", "org.sonarqube:java-gradle-simple"
        property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
    }
}

allprojects {
  ext.baseVersion = "0.1"
  ext.snapshotVersion = true

  group = "org.sonarqube"
  version = "$baseVersion" + (snapshotVersion ? "-SNAPSHOT" : "")
}

test {
  ignoreFailures = true
}

dependencies {
    testCompile 'junit:junit:4.12'
}

repositories {
  repositories {
    maven {
      url "http://repo1.maven.org/maven2/"
    }
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
}

我在SonarSource example repo找到了这个

travis CI 通过,但 sonarqube.com 分析未运行。我是 Travis、SonarQube 和 Gradle 的新手,所以我不知道我到底错在哪里。

编辑:这是Travis logs

【问题讨论】:

  • 您能提供 Travis 日志的链接吗?没有执行日志就无法提供帮助。
  • 仅供参考,这是一个使用 Gradle 成功分析其代码的项目的 Travis YML:github.com/andstatus/andstatus/blob/master/.travis.yml#L72
  • @Fabrice-SonarSourceTeam 我添加了我的问题的日志。

标签: java gradle sonarqube travis-ci sonarqube-scan


【解决方案1】:

SonarQube 分析未执行。你必须明确地调用它。比如:

gradle sonarqube

请阅读SonarQube Scanner for Gradle 的文档。

【讨论】:

  • 谢谢。我按照您的示例更改了我的 travis 文件以执行 gradle sonarqube,但这并没有更好。有人可以快速检查my test project(新日志here)吗?
【解决方案2】:

首先,您应该在 sonarqube.com 上创建一个令牌。它位于“我的帐户”>“安全”下。

然后您需要将令牌添加到您的声纳属性中

sonar.login=XXX

您可能还需要将 url 更改为 https。

需要注意的一点是令牌不安全。要保护令牌,请关注this guide。您必须将令牌作为变量传递给 gradle。我相信你可以通过-Psonar.login=$SONAR_TOKEN 做到这一点。

【讨论】:

    猜你喜欢
    • 2013-09-13
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多