35 votes

Libres linteuses personnalisées dans Android

Mon équipe et moi-développer des applications Android et que vous avez décidé sur les directives de codage que tous devraient suivre. J'ai donc commencé à mettre en œuvre personnalisée de la charpie règles que par les liens suivants:

Le problème que je vais avoir est en fait la mise en œuvre de ces peluches règles sur une base de projet. Lorsque j'exécute ./gradlew clean build test install , comme indiqué, les règles s'appliquent et tout est bien. Cependant, quand je construire l'aar bibliothèque avec ./gradlew aarWrapper:assemble et l'ajouter à ma libs le dossier le peluchage ne fonctionne pas.

J'ai ajouté ce qui suit à mon build.gradle le fichier à ajouter à la bibliothèque

repositories {
    flatDir {
            dirs 'libs'
        }
}

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

Je ne suis pas sûr de ce que je suis absent, mais quand je le lance en ./gradlew lint il exécute le linter mais pas avec mes règles personnalisées... Toute aide, des conseils ou des conseils est grandement apprécié.

EDIT 1

Voici la sortie du terminal lors de l'exécution de gradle.

: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

EDIT 2

Fourche projet: https://github.com/apertomove/linette

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

EDIT 3 Outre les liens ci-dessus, j'ai trouvé ce post écrit par Jason Atwood. Nous aussi, nous avons un serveur CI, l'exécution de jenkins dans lequel nous pouvons exécuter nos contrôles et d'informer les développeurs d'erreurs en fonction de nos peluches règles. Cela fonctionne très bien, cependant, il est une étape loin. Il serait beaucoup plus utile et le temps d'économiser pour exécuter les peluches des chèques à partir de la bibliothèque lors de l'exécution de nos projets de Android Studio, au lieu de commettre notre code seulement pour découvrir que notre projet enfreint les règles.

1voto

infantDev Points 429

J'ai écrit un post sur comment ajouter et intégrer les peluches personnalisées règles à votre application android, vous pouvez avoir un coup d'oeil. Il a également des liens vers github repos montrant comment son fait dans un projet android. Lien vers le post

Le moyen le plus facile pour moi a été de définir ANDROID_LINT_JARS chemin d'accès dans la gradlew fichier et de le montrer à la coutume de la charpie jar qui est vérifié dans de VCS système, de sorte que vous pouvez l'exécuter localement avant de pousser le code. Espérons que cela aide.

0voto

Madhu Points 1

@hopeman copiez le fichier jar dans le dossier /.android/lint. Android choisira vos règles de charpie personnalisées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X