Пользовательские linting lib в android

Моя команда и я разрабатываем приложения для Android и решили разработать правила кодирования, которые должны следовать всем. Поэтому я начал внедрять пользовательские правила lint в соответствии со следующими ссылками:

Проблема, с которой я столкнулась, фактически реализует эти правила lint на основе проекта. Когда я запускаю ./gradlew clean build test install, как указано, применяются правила, и все хорошо. Однако, когда я создаю библиотеку aar с помощью ./gradlew aarWrapper:assemble и добавляю ее в папку libs, листинг не работает.

Я добавил следующее в мой файл build.gradle, чтобы добавить библиотеку

repositories {
    flatDir {
            dirs 'libs'
        }
}

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

Я не уверен, что мне не хватает, но когда я запускаю ./gradlew lint, он запускает linter, но не с моими пользовательскими правилами... Приветствуется любая помощь, советы или советы.

РЕДАКТИРОВАТЬ 1

Вот вывод терминала при запуске 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

РЕДАКТИРОВАТЬ 2

Forked project: https://github.com/apertomove/linette

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

РЕДАКТИРОВАТЬ 3 В дополнение к ссылкам выше я нашел этот пост, написанный Джейсоном Этвудом. У нас также есть сервер CI, в котором работают jenkins, в которых мы можем запускать наши проверки и сообщать разработчикам об ошибках, основанных на наших правилах. Это отлично работает, однако, это шаг вперед. Было бы гораздо более ценным и экономить время, чтобы запускать проверки lint из библиотеки при запуске наших проектов из Android Studio вместо того, чтобы выполнять наш код, только чтобы узнать, что наш проект нарушает правила.

Ответ 1

Я написал сообщение о том, как добавить и интегрировать пользовательские правила lint в ваше приложение Android, вы можете посмотреть. Он также имеет ссылки на репозитории github, показывающие, как это делается в проекте Android. Ссылка на сообщение

Самый простой способ для меня состоял в том, чтобы установить путь ANDROID_LINT_JARS в файле gradlew и указать его на настраиваемую банку lint, которая проверена в системе VCS, так что вы можете запустить ее локально, а затем до нажатия кода. Надеюсь, что это поможет.

Ответ 2

@hopeman скопируйте файл jar в папку /.android/lint. Android выберет ваши пользовательские правила lint.