Kundenspezifische linting lib in android

Mein Team und ich entwickeln Android-Apps und haben sich entschieden auf Codierungsrichtlinien, die alle folgen sollten. Ich habe daher angefangen, kundenspezifische Futterregeln wie folgt zu verwenden:

  • Beitrag von Matt Compton geschrieben
  • Git Repo

Das Problem, das ich habe, ist eigentlich die Umsetzung dieser Lint Regeln auf einer Projektbasis. Wenn ich laufe ./gradlew clean build test install , wie angegeben die Regeln gelten und alles ist gut. Allerdings, wenn ich baue die aar Bibliothek mit ./gradlew aarWrapper:assemble und fügen Sie es zu meinem libs Ordner die Flusen funktioniert nicht.

Ich habe folgendes zu meiner build.gradle Datei hinzugefügt, um die Bibliothek hinzuzufügen

 repositories { flatDir { dirs 'libs' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile(name: 'aarWrapper-debug', ext: 'aar') } 

Ich bin mir nicht sicher, was mir fehlt, aber wenn ich ./gradlew lint es läuft die linter aber nicht mit meinen benutzerdefinierten Regeln … Irgendeine Hilfe, Tipps oder Ratschläge werden sehr geschätzt.

BEARBEITEN 1

Hier ist die Terminalausgabe bei laufendem Grad.

 :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareAarWrapperDebugLibrary UP-TO-DATE :app:prepareComAndroidSupportAnimatedVectorDrawable2421Library UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72421Library UP-TO-DATE :app:prepareComAndroidSupportDesign2421Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72421Library UP-TO-DATE :app:prepareComAndroidSupportSupportCompat2421Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUi2421Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUtils2421Library UP-TO-DATE :app:prepareComAndroidSupportSupportFragment2421Library UP-TO-DATE :app:prepareComAndroidSupportSupportMediaCompat2421Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42421Library UP-TO-DATE :app:prepareComAndroidSupportSupportVectorDrawable2421Library UP-TO-DATE :app:prepareComAndroidVolleyVolley100Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidAnswers138Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidBeta121Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidCrashlytics261Library UP-TO-DATE :app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2310Library UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesBase961Library UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesBasement961Library UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesLocation961Library UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesMaps961Library UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesTasks961Library UP-TO-DATE :app:prepareIoFabricSdkAndroidFabric1312Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources UP-TO-DATE :app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE :app:generateDebugSources UP-TO-DATE :app:incrementalDebugJavaCompilationSafeguard UP-TO-DATE :app:compileDebugJavaWithJavac UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:compileDebugSources UP-TO-DATE :app:mergeDebugShaders UP-TO-DATE :app:compileDebugShaders UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:transformClassesWithDexForDebug UP-TO-DATE :app:mergeDebugJniLibFolders UP-TO-DATE :app:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE :app:processDebugJavaRes UP-TO-DATE :app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE :app:validateSigningDebug :app:packageDebug :app:assembleDebug BUILD SUCCESSFUL Total time: 7.881 secs 

BEARBEITEN 2

Gegertes Projekt: https://github.com/apertomove/linette

Build.gradle: https://github.com/apertomove/linette/blob/apertomove-linette/build.gradle

EDIT 3 Zusätzlich zu den Links oben fand ich diesen Beitrag von Jason Atwood geschrieben. Wir haben auch einen CI-Server mit Jenkins, in dem wir unsere Schecks ausführen können und informieren Entwickler von Fehlern, die auf unseren Flusenregeln basieren. Das ist aber toll, aber es ist ein Schritt zu weit. Es wäre viel wertvoller und Zeit sparen, um Flusenschecks aus der Bibliothek zu laufen, wenn wir unsere Projekte aus Android Studio ausführen, anstatt unseren Code zu begehen, um herauszufinden, dass unser Projekt Regeln beendet.

  • Wie zu unterdrücken bestimmte Lint Warnung für veraltete Android-Funktion?
  • Lint unbenutzte Ressourcen false positives mit neuer Version von Android Plugin für Gradle
  • Retrolambda: Lint stürzt bei der Verwendung von Lambda-Ausdrücken mit Retrolambda ab
  • Kann nicht APK Release wegen GCM SenderId Android generieren
  • Wie zu unterdrücken Android Lint Warnung in Gradle-Skript
  • Android: Erstellen von API-Anrufen, die Berechtigungen erfordern
  • Android Studio: Unterdrückung Lint Warnung für if Anweisung
  • Flusenfehler "behandeln Sie die Position nicht als fix; Nur sofort verwenden ... "
  • 2 Solutions collect form web for “Kundenspezifische linting lib in android”

    Ich habe einen Beitrag geschrieben, wie man benutzerdefinierte Lint-Regeln zu Ihrer Android-App hinzufügen und integrieren kann, können Sie einen Blick haben. Es hat auch Links zu github repos zeigt, wie es in einem Android-Projekt gemacht. Link zum Beitrag

    Der einfachste Weg für mich war, den ANDROID_LINT_JARS-Pfad in der gradlew-Datei zu setzen und auf das benutzerdefinierte Flusenglas zu legen, das in das VCS-System eingecheckt wird, damit du es auch lokal ausführen kannst, bevor du den Code drückst. Ich hoffe es hilft.

    @hopeman kopiere die JAR-Datei in den Ordner /.android/lint. Android wird Ihre benutzerdefinierte Flusenregeln auswählen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.