声纳:我如何使用gradle来检查android项目

Kev*_*oen 9 java android gradle sonarqube

我已经尝试了一段时间,让声纳检查和分析我的android项目.但到目前为止没有运气.我试图在声纳中实现的项目是一个测试项目,有两个类和一些测试方法.所有这些都塞在项目的src目录中.

所以这就是我到目前为止所拥有的.

具有以下设置的build.gradle文件:

buildscript {
repositories {
    mavenCentral()
}

dependencies {
    classpath 'com.android.tools.build:gradle:0.6.+'
}
}

apply plugin: 'android'
apply plugin: 'sonar'
apply plugin: "sonar-runner"

android {  

buildToolsVersion "18.0.1"
compileSdkVersion 18

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 16
}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['com.example.GradleAndroidTest']
        resources.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
    instrumentTest.setRoot('test')
}


}

sonar {
server {
    url = "http://sonar.someserver.int"
}
database {
    url = "jdbc:mysql://sonar.someserver.int:3306/sonar"
    driverClassName = "com.mysql.jdbc.Driver"
    username = "*****"
    password = "*****"
}
}

sonarRunner {
sonarProperties {
    property "sonar.host.url", "http://sonar.someserver.int"
    property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar"
    property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
    property "sonar.jdbc.username", "*****"
    property "sonar.jdbc.password", "*****"
}
}
Run Code Online (Sandbox Code Playgroud)

要测试这个项目,我在命令提示符下输入项目的根目录,然后输入:

gradle sonarRunner

在此之后,该项目在sonarQube上展示,但没有显示统计学.没有代码行,没有.我的问题是.我忘记了什么吗?难道我做错了什么.

我对gradle和声纳没有多少经验,所以现在我寻求那些人的帮助.希望你能帮忙!

Kev*_*oen 10

我发现了我做错了什么.我忘了添加几个强制属性.

sonarProperties {
    property "sonar.host.url", "http://sonar.someserver.int"
    property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar"
    property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
    property "sonar.jdbc.username", "*****"
    property "sonar.jdbc.password", "*****"

    //I added these properties to my gradle.build
    property "sonar.projectKey", "GradleAndroidTest"
    property "sonar.projectName", "GradleAndroidTest"
    property "sonar.projectVersion", "V1.0"
    property "sonar.language", "java"
    property "sonar.sources", "src"
    property "sonar.binaries", "build"
}
Run Code Online (Sandbox Code Playgroud)

正如@Peter Niederwieser所说,插件无法预先配置这些东西所以我必须手动添加它们.

我也删除了声纳插件,而是使用了sonar-runner插件.

  • 这绝对是好事.要在现代Android Studio gradle设置中使用它,我实际上必须将`property"sonar.sources","src"`更改为`property"sonar.sources","src/main/java"`并且它有效! (6认同)