ProblemSonar, Gradle i Android zwraca 0 kwestia
Mam Android projekt, który kompiluje i działa poprawnie. Jest "zarządzany" przez Gradle i ciągle budowany z Jenkinsem. Chciałbym przeanalizować jakość mojego kodu za pomocą sonaru.
Analiza sonaru jest wykonywana przy użyciu zadania Gradle z sonarRunner
. Problem polega na tym, że Sonar wciąż mówi mi, że jest "0 problem" ... (Mogę zapewnić, że są błędy ... dodam je samemu, aby się upewnić ...). Jednak daje mi to inne informacje, takie jak: liczba linii kodu, liczba klas, komentarze i dokumentacja procentowa, procent powielania, złożoność ... To tak, jakby Android Lint nie był uruchomiony.
Co próbowałem
lint
działa jak czar ...:
Ran szarpie na wariantu armRelease: 153 Zagadnienia znaleźć
Ran szarpie wariantu armDebug: znaleziono 153 tematy
Lint ran na wariancie x86Debug: znaleziono 153 problemów
Ran szarpie na wariantu x86Release: 153 Zagadnienia znaleźć
próbowałem wiele rzeczy, które czytałem w internecie i tak, to:
- Publishing Lint results to Sonar using Gradle
- http://www.gradle.org/docs/current/userguide/sonar_runner_plugin.html
- https://github.com/stephanenicolas/Quality-Tools-for-Android/blob/master/build.gradle
Miałem różne błędy l ike "Class" android/content/res/Resources "nie jest dostępny za pośrednictwem ClassLoader." lub coś innego, ale nigdy nie udało mi się uzyskać prawidłowego raportu).
Dane
Struktura projektu
- myProjectName
| build
| libs
| src
| debug
| main
| assets
| java
| com.myPackage...
| jniLibs
| res
| AndroidManifest.xml
| release
| build.gradle
| gradle.properties
| settings.gradle
settings.gradle
Pusty
gradle.properties
Empty
budować.Gradle (bezużytecznych części usunięte)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
}
}
/**********************************
* Plugins declarations
**********************************/
apply plugin: 'com.android.application'
apply plugin: "sonar-runner"
/**********************************
* Sonar Runner configuration
**********************************/
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://pic.url/sonar"
property "sonar.jdbc.url", "jdbc:mysql://pic.url/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "*****"
property "sonar.jdbc.password", "*****"
property "sonar.language", "java"
property "sonar.profile", "MyCompany Android"
property "sonar.projectVersion", "1.0"
property "sonar.analysis.mode", "analysis"
properties["sonar.sources"] = android.sourceSets.main.java.srcDirs
properties["sonar.binaries"] = [file("build/intermediates/classes/x86/debug")]
}
}
/**********************************
* Android configuration
**********************************/
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.myPackage..."
minSdkVersion 14
targetSdkVersion 16
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
}
jak próbowałem wiele rzeczy, nie mam żadnego pojęcia o co próbować dalej. Proszę zapytać w komentarzach, czy potrzebujesz więcej informacji.
Ostatnie informacje:
- Sonar 3.7
- Gradle 1,12
- JVM 1.8.0_20 Oracle
- OS: Linux Fedora 20
EDIT
gradle sonarRunner
log (zadawane w komentarzach): http://pastebin.com/uJwqpAkY
(wszystkie „***” Jesteśmy tutaj, aby ukryć nazwy firm, wszystko jest normalne :))
Byłbyś w stanie udostępnić dziennik analizy? – benzonico
Jeśli powiesz mi, gdzie mogę ją znaleźć, zrobię to tak szybko jak to możliwe – mithrop
Jak czy prowadzisz swoją analizę z sonarem-biegaczem? czy możesz podać, co jest wynikiem polecenia sonar-runner? (jeśli jest na jenkins, powinien to być dziennik pracy) – benzonico