software - sonarqube java
Analizando Android Project con Lint y SonarQube (2)
Realmente tuve un ''desbordamiento'' tratando de hacer que estas cosas funcionen juntas. Seguí las instrucciones desde aquí: http://docs.sonarqube.org/display/PLUG/Android+Lint+Plugin y finalmente obtuve un servidor SonarQube 5.1.1 con Android Lint plugin 1.1 instalado. Luego configuré mi compilación Gradle de múltiples módulos para que funcione con el complemento SonarQube: ver el fragmento de código de la configuración de root a continuación.
plugins {
id ''org.sonarqube'' version ''1.0''
}
sonarqube {
properties {
property ''sonar.host.url'', ''sonarqube-server:9000''
property ''sonar.jdbc.url'', ''jdbc:mysql://sonarqube-db:3306/sonar?useUnicode=true&characterEncoding=utf8''
property ''sonar.jdbc.driverClassName'', ''com.mysql.jdbc.Driver''
property ''sonar.jdbc.username'', ''sonar''
property ''sonar.jdbc.password'', ''sonar''
property ''sonar.sourceEncoding'', ''UTF-8''
property ''sonar.login'', ''admin''
property ''sonar.password'', ''admin''
property ''sonar.profile'', ''Android Lint''
property ''sonar.import_unknown_files'', true
property ''sonar.android.lint.report'', ''build/outputs/lint-results.xml''
}
}
Y después de eso lint sonarqube
tarea de lint sonarqube
para ejecutar el análisis. Como resultado obtuve una gran cantidad de errores de Lint con respecto al proyecto ''retrolambda'' ( java.lang.UnsupportedOperationException: Unknown ASTNode child: LambdaExpression
), que es bastante normal, y lint-results.xml
(acompañado con la versión HTML) de los archivos por cada módulo que contiene descripciones de problemas descubiertos. El informe dice que hubo 8 errores y 434 advertencias encontradas. Pero las cosas salieron mal cuando el complemento sonarqube intentó subir los resultados al servidor de SonarQube. El registro estaba lleno de mensajes de "No se pudo encontrar el archivo" y "No se pudo encontrar la regla". Y cuando terminó el proceso, no se informaron problemas para mi proyecto en el servidor SonarQube.
Y me pregunto, ¿qué salió mal? Revisé los caminos, y todos los archivos estaban allí. Revisé todas las discusiones que pude alcanzar, y parece que mi configuración es correcta y hago todo bien. ¿Alguien tiene alguna pista, lo que me perdí y lo que debe verificarse? Cualquier sugerencia o idea es bienvenida.
También estaré contento si hay una manera de importar datos de pelusa usando SonarQube Runner externo, ya que esta herramienta parece ser más predecible y estable que un plugin de Gradle.
La configuración de su gradle parece estar bien, ¿ha instalado el complemento de Android en el servidor SonarQube?
No veo ese paso en su pregunta, si no, vaya a Configuración-> Sistema-> Centro de actualización e instale el complemento de Android.
Una vez que está instalado, necesita reiniciar su servidor SonarQube y volver a ejecutar el sonar-runner.
Tuve éxito con un proyecto de Android multimodular. Dado que los archivos de compilación completos ocupan demasiado espacio, solo se muestran las partes relevantes aquí.
En build.gradle del proyecto principal , establecí:
buildscript {
...
dependencies { classpath ''com.android.tools.build:gradle:1.5.0''
...
}
plugins { id "org.sonarqube" version "1.1" }
En el proyecto de la aplicación (y cualquier otro niño) configuro:
sonarqube {
properties {
property "sonar.profile", "Android Lint"
property "sonar.sources", "./src/main/java"
}
}
Esa fue la configuración mínima para que el complemento SonarQube comenzara a analizar los proyectos.