Análisis de Android Project con Lint y SonarQube

Realmente tengo un "desbordamiento" tratando de hacer que estas cosas funcionen juntas. Seguí la instrucción desde aquí: http://docs.sonarqube.org/display/PLUG/Android+Lint+Plugin y finalmente conseguí un servidor SonarQube 5.1.1 con Android Lint plugin 1.1 instalado. Luego configuré mi compilación Gradle de varios módulos para trabajar con el complemento SonarQube: vea el fragmento de código desde la configuración de raíz abajo.

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 he corrido la lint sonarqube tarea 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 ), lo cual es bastante normal, y los archivos lint-results.xml (acompañados con la versión HTML) por cada módulo Que contiene descripciones de los problemas descubiertos. El informe dice que se han encontrado 8 errores y 434 advertencias. Pero las cosas salieron mal cuando sonarqube plugin intentó subir los resultados al servidor de SonarQube. El registro estaba lleno de mensajes 'No se pudo encontrar el archivo' y 'No se pudo encontrar la regla'. Y cuando el procesamiento se terminó, entonces no hubo problemas informados para mi proyecto en el servidor de SonarQube.

Y me pregunto, ¿qué salió mal? Comprobé los caminos, y todos los archivos estaban allí. Miré a través de todas las discusiones que pude alcanzar, y parece que mi configuración es correcta y lo hago todo bien. ¿Alguien tiene alguna pista, lo que me perdí y lo que hay que comprobar? Cualquier sugerencia o idea es bienvenida.

También estaré feliz si hay una manera de importar datos de pelusa utilizando Runner externo SonarQube, ya que esta herramienta parece ser más predecible y estable, a continuación, un complemento Gradle.

Tuve éxito con un proyecto androide multimodule. Dado que los archivos de compilación completos toman demasiado espacio, muestro sólo 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 otros niños) establecí:

 sonarqube { properties { property "sonar.profile", "Android Lint" property "sonar.sources", "./src/main/java" } } 

Esa fue la configuración mínima para que el complemento de SonarQube comenzara a analizar los proyectos.

Su configuración de gradle parece bien, ¿ha instalado el complemento de Android en el servidor de SonarQube?

No veo ese paso en tu pregunta, si no goto Configuración-> Sistema-> Centro de actualizaciones e instalar plugin de Android.

Introduzca aquí la descripción de la imagen

Una vez instalado, debe reiniciar el servidor SonarQube y volver a ejecutar el sonar-runner.

  • Publicar los resultados de Lint a Sonar usando Gradle
  • ¿Por qué el Sonar no lee mis resultados de JUnit XML en Jenkins?
  • Cómo configurar la configuración de SONAR para el complemento de sonar intellij para Android Studio?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.