Die statische Codeanalyse wickelt sich um Checkstyle, Spotbugs, PMD und CPD und bietet den eingekapselten Plugins neue Funktionen und Erweiterungen, sodass sie einfacher werden können und bessere Ergebnisse mit minimaler Aufwand liefern.
Aus der Schachtel, mit einfach das Plugin, das Sie erhalten:
R.class und BuildConfig.class )Wir sind auf dem Note -Plugin -Portal, also können Sie einfach:
plugins {
id ' com.monits.staticCodeAnalysis ' version ' 3.1.1 '
}Oder Sie könnten es auch tun
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis 'oder direkt von JCenter
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis ' | Plugin -Version | Gradle -Version | Android Gradle Plugin Version |
|---|---|---|
| 3.x | 5.6+ | 3.3.0+ |
| 2.6.12 | 2.3 bis 5,6.x | 1.1.x bis 3.5.x |
Vor der Version 3.0.0 wurde Findbugs anstelle von Spotbugs verwendet.
Die Konfiguration der statischen Codeanalyse ist dank der DSL sehr einfach und intuitiv. Sie können auswählen, welches eingekapselte Plugin seine Konfigurationsdateien ausführen und festlegen soll. Hier ist ein kurzes Beispiel
staticCodeAnalysis {
spotbugs = true
checkstyle = true
pmd = true
cpd = true
androidLint = true
ignoreErrors = true
// default rules
spotbugsExclude = " $p roject . rootProject . projectDir /config/spotbugs/excludeFilter.xml "
checkstyleRules = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/checkstyle/checkstyle-cache.xml '
pmdRules = [ ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
androidLintConfig = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/android/android-lint.xml '
sourceSetConfig {
test { // or the name of any other sourceset
// use a more relaxed ruleset
checkstyleRules = ' config/checkstyle/test-checkstyle.xml '
spotbugsExclude = ' config/spotbugs/test-spotbugs.xml '
pmdRules = [ ' config/pmd/test-pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
}
}
}Standardmäßig werden alle Plugins angewendet, Fehler scheitern den Build nicht, und Regeln und Ausschlüsse werden aus den neuesten Standardausstellungen dieses Repositorys entnommen
Vor der Version 3.0.0 wurde Findbugs anstelle von Spotbugs verwendet. Wenn die alte Version verwendet wird, ist die DSL gleichwertig, verwendet jedoch findbugs anstelle von spotbugs für alle Eigenschaften.
Alle V2.x -Findbugs -DSL -Eigenschaften werden automatisch auf Spotbugs in V3.x zugeordnet, um das Upgrade zu vereinfachen
Regeln, die von PMD, Spotbugs und CheckStyle verwendet werden, können im sourceSetConfig Block pro Sourceset überschrieben werden.
Um benutzerdefinierte Lint -Regeln einzuschließen, können Sie die Gläser einfach als Abhängigkeiten unter androidLint einfügen. Zum Beispiel können Sie die Android -Linter von Monits einfügen, indem Sie hinzufügen:
dependencies {
androidLint ' com.monits:android-linters:1.+ '
}Das Plugin fügt die folgenden Aufgaben hinzu:
cpdcheckstyle , hängt von:checkstyleSourcesetname -Aufgabe pro Quelleinstellung ( checkstyleMain , checkstyleTest uson).spotbugs hängt von:spotbugsSourcesetname -Aufgabe pro Quelleinsatz ( spotbugsMain , spotbugsTest usw.).pmd , hängt von:pmdSourcesetname -Aufgabe pro Quelleinstellung ( pmdMain , pmdTest , so on). Vor der Version 3.0.0 wurde Findbugs anstelle von Spotbugs verwendet. Die alten findbugs* -Antäer sind noch verfügbar und müssen an die entsprechenden spotbugs* -Andase geordnet werden
Alle Aufgaben sollen als Teil der check -Aufgabe des Java -Plugins ausgeführt werden.
Wie immer können wir uns in jeder Form oder in Form von Form auf Ihr Feedback freuen!
Wenn Sie sehen, dass die Dinge gemeldet werden, von denen Sie glauben, dass sie nicht eines von zwei Dingen sein könnte:
Da jedes Tool einen eigenen Unterdrückungsmechanismus hat, sollten Sie sich auf seine Dokumentation beziehen:
@SupressFBWarnings JavadocCopyright 2010-2017 beachtet SA
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Arbeit nur in Einklang mit der Lizenz verwenden. Sie können eine Kopie der Lizenz erhalten unter:
http://www.apache.org/licenses/license-2.0