🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Android, Quellcode mit Checkstyle und FindBugs prüfen

Posted on 19. Februar 20163. Mai 2023 by Stefan Draeger

In der Softwareentwicklung haben sich verschiedene Code Richtlinien gefestigt, seien es die „normalen“ Java Beans Konventionen oder aber auch wie in diesem Tutorial die Checkstyle und FindBugsrichtlinien, sicherlich gibt es hier auch viele andere Tools welche genannt werden könnten jedoch ist mir aufgefallen das die Checks sich wiederholen und somit der Mehrwert nicht deutlich steigt.

Hier in diesem Tutorial möchte ich nun beschreiben wie ich Checkstyle und Findbugs in meinem aktuellen Android Projekt eingerichtet habe.

  • Build Tool & IDE
  • Anlegen der Verzeichnisstruktur
  • Erstellen des Gradle Skriptes
  • Ablage der Konfigurationsdateien für Checkstyle und FindBugs
    • Checkstyle
    • FindBugs
  • Einbinden in den Buildprozess
  • Der Download

Build Tool & IDE

Als Build Tool verwende, ich Gradle welche in dem Android Studio enthalten ist und somit nicht extra konfiguriert werden muss.

Anlegen der Verzeichnisstruktur

Für die Ablage der Konfigurationsdateien erstellt man folgende Verzeichnisstruktur
(gelb markiert).

Verzeichnisstruktur
Verzeichnisstruktur

Erstellen des Gradle Skriptes

Aus einem anderen englischsprachigen Tutorial habe ich mir ein passendes Gradle Script geladen und meinen Bedürfnissen wie folgt angepasst.
(Am Ende des Tutorials gibt es alle Dateien im praktischen ZIP Download)

apply plugin: 'checkstyle'
apply plugin: 'findbugs'

check.dependsOn 'checkstyle', 'findbugs', 'lint'

task checkstyle(type: Checkstyle) {
    configFile file("${project.rootDir}/config/checkstyle/sun_checks.xml")
    configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/checkstyle/suppressions.xml").absolutePath
    source 'src'
    include '**/*.java'
    exclude '**/gen/**'
    classpath = files()
}

task findbugs(type: FindBugs, dependsOn: assembleDebug) {
    ignoreFailures = false
    effort = "max"
    reportLevel = "high"
    excludeFilter = new File("${project.rootDir}/config/findbugs/findbugs-filter.xml")
    classes = files("${project.rootDir}/app/build/intermediates/classes")

    source 'src'
    include '**/*.java'
    exclude '**/gen/**'

    reports {
        xml.enabled = false
        html.enabled = true
        xml {
            destination "$project.buildDir/reports/findbugs/findbugs.xml"
        }
        html {
            destination "$project.buildDir/reports/findbugs/findbugs.html"
        }
    }

    classpath = files()
}

android {
    lintOptions {
        abortOnError true
        xmlReport false
        htmlReport true
        lintConfig file("${project.rootDir}/config/quality/lint/lint.xml")
        htmlOutput file("$project.buildDir/reports/lint/lint-result.html")
        xmlOutput file("$project.buildDir/reports/lint/lint-result.xml")
    }
}

Dieses Gradle Script muss nun noch in das bestehende Gradle Script integriert werden.

Dazu wird folgende Zeile der Datei „build.gradle (Module: app)“ hinzugefügt.

apply from: '../config/quality.gradle'

Ablage der Konfigurationsdateien für Checkstyle und FindBugs

Beispiel Konfigurationsdateien kann man auf der Herstellerseite herunterladen und nach seinen Bedürfnissen einfach anpassen.

Checkstyle

Ich habe mir die „sun_checks.xml“ geladen und einige für mich nicht benötigte Checks auskommentiert.

FindBugs

Eine Datei mit den FindBugs Filtern kann man unter http://findbugs.sourceforge.net/ finden.

Einbinden in den Buildprozess

Nachdem die Scripte erweitert bzw. angelegt wurden kann man die Task „checkstyle“ und „findbugs“ dem Buildprozess hinzufügen.
Dazu klickt man auf „Run“ -> „Edit Configurations“ dort wählt man die App aus (sollte vorselektiert sein.) und klickt im unteren Bereich aus das grüne + Zeichen dieses sollte nun folgendes Untermenü öffnen, wo wir den Eintrag „Run Gradle task“ auswählen.

Untermenü
Untermenü

Es sollte sich nun folgende Maske öffnen in welchem wir das Projekt wählen und den Task eingeben welcher gestartet werden soll.

Gradle Checkstyle Task
Gradle Checkstyle Task

Dieses wiederholen wir nun auch für den Findbugs Task und das Ergebnis sollte danach wiefolgt aussehen.

Gradle, Checkstyle und Findbugs Task
Gradle, Checkstyle und Findbugs Task

Nachdem der Dialog mit der Schaltfläche „Apply“ und „OK“ bestätigt wurde, wird nun bei jedem Build Vorgang Checkstyle und Findbugs gestartet. Sollte hier also Checkstyle bzw. Findbugs Fehler finden, so wird der Build nicht fortgesetzt.

Der Download

Hier nun der Download mit dem Gradle Script und den Checkstyle sowie Findbugs Konfigurationsdateien.

Android, Quellcode mit Checkstyle und FindBugs prüfenHerunterladen

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb