2015-02-06 5 views
5

mi piacerebbe impostare il nostro progetto in modo tale da garantire che la codifica stile e di essere di avviso e privo di lanugine viene applicata per checkins privo di lanugine . Mi piacerebbe anche renderlo super facile agli sviluppatori quando non sono conformi.Applicazione di codifica stile e di essere di avviso e tra i team in Android Studio o git/github

Idealmente questo sarebbe presentato all'interno di Android Studio (tutti i nostri sviluppatori stanno utilizzando lo stesso IDE) quando si modifica un file o si esegue una build. Inoltre, sarebbe bello avere questa applicazione "funziona" quando uno sviluppatore clona il repository, piuttosto che richiedere un'ulteriore impostazione manuale.

Qual è il modo più pulito per farlo?

risposta

5

Analizzatori di codice statico come Checkstyle, FindBugs e PMD possono aiutarvi.
Possono essere configurati per l'utilizzo con Gradle e Android Studio con l'aiuto di these scripts. Se qualcosa di sbagliato in base alla configurazione degli analizzatori fallirà.

Poiché questi script sono integrati con Gradle, possono essere commessi in repo e funzioneranno quando lo sviluppatore lo clona.

I rapporti generati sfortunatamente non sono integrati con Android Studio, quindi è un modo migliore per creare ed eseguire i controlli dalla console utilizzando il wrapper gradle. Le attività degli analizzatori statici sono configurate in base all'attività check, pertanto il comando ./gradlew check eseguirà tutte le attività.

I report si trovano nella directory $project.buildDir/reports, ma possono essere modificati anche.

Le configurazioni di checkstyle sono molto flessibili. Possono essere configurati su qualsiasi stile di codice che preferisci. Ad esempio, Google Java Code Checkstyle config.

PMD dispone di un set di regole per eseguire i controlli sul codice. Ha anche android rules. Ecco una guida how to make a ruleset configuration for PMD.

FindBugs consente di trovare bug comuni nel codice Java. Per esempio. rileva la concatenazione di stringhe multiple utilizzando + e suggerisce di utilizzare StringBuilder. Può essere configurato con filter files.

Inoltre non spegnere controllo lint del tutto simile a questo:

lintOptions { 
    abortOnError false 
} 

Un modo migliore è quello di disattivare i controlli specifici, se non ti piace di loro, ad es .:

lintOptions { 
    disable 'InvalidPackage' 
} 
Problemi correlati