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

我一直在尝试一段时间,让声纳检查和分析我的Android项目。 但到目前为止没有运气。 我试图在声纳中实现的项目是一个testing项目,带有一些testing方法的2个类。 所有填充在项目的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", "*****" } } 

为了testing这个项目,我在命令提示符下进入项目的根目录并键入:

gradle sonarRunner

之后,这个项目在sonarQube上显示,但没有显示统计信息。 没有代码行,什么都没有。 我的问题是。 我忘了什么吗? 难道我做错了什么。

我没有太多的经验,所以现在我寻求帮助。 希望你能帮助!

Solutions Collecting From Web of "声纳:我如何使用gradle来检查一个android项目"

我发现我做错了什么。 我忘了添加一些强制性的属性。

 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" } 

正如@Peter Niederwieser所说,插件无法预configuration这些东西,所以我不得不手动添加它们。

我也删除了声纳插件,并使用声纳运行器插件。

我认为一个问题是,Android插件目前使用自己的源集模型。 sonarRunner插件不知道这个模型,因此不能像通常那样预先configuration。 但是,您应该能够自己提供这些信息,通过显式configuration必要的Sonar属性。

为了找出sonarRunner插件预先configuration了哪些Sonar属性,请查看SonarRunnerPlugin类的SonarRunnerPlugin 。 声纳网站上提供了所有现有Sonar属性的列表。

PS:你应该只应用sonarsonarRunner插件之一。 我build议使用后者(即前者的inheritance者),尽pipe它仍在孵化。