
Configuración sencilla de herramientas de análisis estático para proyectos Android y Java.
⚠️ Se mantiene un fork de este proyecto en https://github.com/GradleUp/static-analysis-plugin/ Migre usando el id de complemento
com.gradleup.static-analysis.
Un complemento de Gradle para aplicar fácilmente la misma configuración de herramientas de análisis estático en diferentes proyectos Android, Java o Kotlin.
Soporta Task Configuration Avoidance para que no haya sobrecarga en las velocidades de compilación al usar este complemento.
Gradle admite muchas herramientas de análisis estático populares (Checkstyle, PMD, FindBugs, etc.) mediante un conjunto de complementos integrados. Usar estos complementos en un módulo Android requiere una configuración adicional para compensar las diferencias entre el modelo adoptado por el complemento Android y el de Java.
El complemento gradle-static-analysis-plugin tiene como objetivo proporcionar:
El complemento admite varias herramientas de análisis estático para proyectos Java, Kotlin y Android:
CheckstylePMDFindBugs [OBSOLETO] [Eliminado en Gradle 6.0]SpotBugsDetektAndroid LintKtLintTenga en cuenta que la disponibilidad de las herramientas depende del proyecto al que se aplica el complemento. Para más detalles, consulte la página de herramientas compatibles.
Para todas las herramientas en consideración, consulte los issues.
Los proyectos Android usan un modelo de Gradle que no es compatible con el de Java, compatible con los complementos de herramientas de análisis estático integrados.
Aplicar gradle-static-analysis-plugin a su proyecto Android asegurará que todas las tareas necesarias se creen y configuren correctamente sin ninguna molestia adicional.
Aplique el complemento desde jCenter como una dependencia de classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
o desde el Repositorio de complementos de Gradle:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Una configuración típica para el complemento se verá así:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Esto habilitará todas las herramientas con su configuración predeterminada y creará la tarea evaluateViolations. Ejecutar la tarea ./gradlew evaluateViolations ejecutará todas las herramientas configuradas y mostrará los informes en la consola. Para configuraciones más avanzadas, consulte las páginas de uso avanzado y herramientas compatibles.
Hay dos proyectos de ejemplo de Android disponibles, uno que consiste en una aplicación normal - disponible aquí - y el otro que comprende una configuración multi-módulo disponible aquí. Ambos proyectos de ejemplo muestran una configuración que incluye Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint y Detekt.
Las compilaciones de instantáneas desde develop se despliegan automáticamente en un repositorio que no está sincronizado con JCenter.
Para consumir una compilación de instantánea, agregue un repositorio maven adicional de la siguiente manera:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Puede encontrar la última versión de instantánea siguiendo este enlace.
Este proyecto es utilizado rutinariamente por muchos proyectos de Novoda y por otros proyectos externos sin problemas críticos conocidos.
Las mejoras futuras y las nuevas integraciones de herramientas se pueden encontrar en el rastreador de problemas del repositorio.