我已经尝试了一段时间,以获取声纳来检查和分析我的android项目。但到目前为止没有运气。我要在声纳中实现的项目是一个具有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", "*****"
}
}
要测试该项目,我在命令提示符下进入该项目的根目录,然后输入:
gradle声纳
此后,该项目显示在sonarQube上,但未显示统计信息。没有代码行,什么都没有。我对你的问题是。我忘记了什么吗?难道我做错了什么。
我在gradle和声纳方面没有太多经验,所以现在我寻求这样做的人的帮助。希望能对您有所帮助!
最佳答案
我发现自己做错了。我忘记添加几个强制属性。
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所说,该插件无法预先配置这些内容,因此我不得不手动添加它们。
我还删除了声纳插件,而改用了声纳运行器插件。