2015-02-06 8 views
5

Ich möchte unser Projekt auf eine Weise einrichten, die sicherstellen, dass Codierungsstil und Warnung und fusselfreien für Checkins erzwungen wird . Ich möchte es auch sehr einfach für Entwickler machen, um zu sehen, wenn sie nicht in Übereinstimmung sind.Erzwingen des Codierungsstils und Warnung und fusselfreie über Teams in Android Studio oder Git/GitHub

Idealerweise würde dies von Android Studio aus (alle unsere Devs verwenden dieselbe IDE) angezeigt, wenn Sie eine Datei bearbeiten oder einen Build ausführen. Außerdem wäre es schön, wenn diese Erzwingung "nur funktioniert", wenn ein Entwickler das Repo klont, anstatt eine zusätzliche manuelle Einrichtung zu erfordern.

Was ist der sauberste Weg, dies zu tun?

Antwort

5

Statische Code-Analysatoren wie Checkstyle, FindBugs und können Ihnen helfen.
Sie können für die Verwendung mit Gradle und Android Studio mit Hilfe von these scripts konfiguriert werden. Wenn etwas falsch ist, wenn die Konfiguration des Analysators konfiguriert ist, wird es fehlschlagen.

Da diese Scripts in Gradle integriert sind, kann Thay zum Repo-Commit verpflichtet werden und funktioniert, wenn Entwickler sie klonen.

Leider sind die generierten Berichte nicht in Android Studio integriert, daher ist es besser, Prüfungen mit Hilfe von Gradle Wrapper von der Konsole aus zu erstellen und auszuführen. Die Tasks der statischen Analysatoren sind so konfiguriert, dass sie von der Task check abhängig sind. Der Befehl ./gradlew check führt sie alle aus.

Berichte befinden sich im Verzeichnis $project.buildDir/reports, aber es kann auch geändert werden.

Checkstyle-Konfigurationen sind sehr flexibel. Sie können für jeden gewünschten Codestil konfiguriert werden. Zum Beispiel Google Java Code Checkstyle config.

PMD verfügt über einen Regelsatz zum Ausführen von Überprüfungen Ihres Codes. Es hat auch android rules. Hier ist eine Anleitung how to make a ruleset configuration for PMD.

FindBugs hilft Ihnen, häufige Fehler in Java-Code zu finden. Z.B. Es erkennt mehrere Zeichenfolgenverkettungen unter Verwendung von + und schlägt vor, StringBuilder zu verwenden. Es kann mit filter files konfiguriert werden.

auch nicht ausschalten Flusen Check ganz wie folgt aus:

lintOptions { 
    abortOnError false 
} 

Eine bessere Möglichkeit, bestimmte Prüfungen zu deaktivieren, wenn Sie sie nicht mögen, z.B .:

lintOptions { 
    disable 'InvalidPackage' 
} 
Verwandte Themen