
Configurazione semplice di strumenti di analisi statica per progetti Android e Java.
⚠️ Un fork di questo progetto è mantenuto su https://github.com/GradleUp/static-analysis-plugin/ Si prega di migrare utilizzando l'ID del plugin
com.gradleup.static-analysis.
Un plugin Gradle per applicare facilmente la stessa configurazione di strumenti di analisi statica a diversi progetti Android, Java o Kotlin.
Supporta l'elusione della configurazione delle attività in modo da avere un overhead zero nella velocità di build quando usi questo plugin!
Gradle supporta molti popolari strumenti di analisi statica (Checkstyle, PMD, FindBugs, ecc.) tramite un insieme di plugin integrati. L'utilizzo di questi plugin in un modulo Android richiede una configurazione aggiuntiva per compensare le differenze tra il modello adottato dal plugin Android rispetto a quello Java.
Il gradle-static-analysis-plugin mira a fornire:
Il plugin supporta vari strumenti di analisi statica per progetti Java, Kotlin e Android:
CheckstylePMDFindBugs [DEPRECATO] [Rimosso in Gradle 6.0]SpotBugsDetektAndroid LintKtLintSi prega di notare che la disponibilità degli strumenti dipende dal progetto a cui il plugin viene applicato. Per maggiori dettagli, fare riferimento alla pagina degli strumenti supportati.
Per tutti gli strumenti in considerazione, fare riferimento alle issue.
I progetti Android utilizzano un modello Gradle che non è compatibile con quello Java supportato dai plugin integrati per gli strumenti di analisi statica.
Applicare gradle-static-analysis-plugin al tuo progetto Android assicurerà che tutti i task necessari vengano creati e configurati correttamente senza alcun fastidio aggiuntivo.
Applica il plugin da jCenter come dipendenza del classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
o dal repository dei plugin di Gradle:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Una configurazione tipica per il plugin sarà simile a:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Questo abiliterà tutti gli strumenti con le loro impostazioni predefinite e creerà il task evaluateViolations. Eseguire il task ./gradlew evaluateViolations eseguirà tutti gli strumenti configurati e stamperà i report nella console. Per configurazioni più avanzate, fare riferimento alla pagina sull'utilizzo avanzato e a quella sugli strumenti supportati.
Sono disponibili due progetti Android di esempio: uno che consiste in un'app regolare - disponibile qui - e l'altro che comprende una configurazione multi-modulo disponibile qui. Entrambi i progetti di esempio mostrano una configurazione che include Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint e Detekt.
Le build snapshot dal ramo develop vengono automaticamente distribuite in un repository che non è sincronizzato con JCenter.
Per utilizzare una build snapshot aggiungi un repository maven aggiuntivo come segue:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Puoi trovare l'ultima versione snapshot seguendo questo link.
Questo progetto è utilizzato regolarmente da molti progetti Novoda e da altri progetti esterni senza problemi critici noti.
Miglioramenti futuri e nuove integrazioni di strumenti possono essere trovati nel tracciatore di issue del repository.