Mein Team und ich entwickeln Android-Apps und haben entschieden, Richtlinien für die Codierung, die alle folgen sollten. Ich begann daher individuelle Fusseln Regeln gemäß den folgenden Links Umsetzung:Benutzerdefinierte Linting Lib in Android
Das Problem, das ich habe, ist eigentlich diese Fusseln Regeln für die Durchführung eines Projekts Basis. Wenn ich ./gradlew clean build test install
ausführen, gelten die Regeln wie angegeben und alles ist gut. Wenn ich jedoch die AAR-Bibliothek mit ./gradlew aarWrapper:assemble
baue und sie zu meinem libs
Ordner hinzufüge, funktioniert das Linting nicht.
Ich habe folgendes meine build.gradle
Datei der Bibliothek
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name: 'aarWrapper-debug', ext: 'aar')
}
Ich bin nicht sicher hinzufügen, was mir fehlt, aber wenn ich ./gradlew lint
laufen läuft es Linter aber nicht mit meiner benutzerdefinierten Regeln .. Jede Hilfe, Tipps oder Ratschläge werden sehr geschätzt.
EDIT 1
Hier ist der Anschluss ausgegeben, wenn Gradle läuft.
: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
Verästelter Projekt: https://github.com/apertomove/linette
build.gradle: https://github.com/apertomove/linette/blob/apertomove-linette/build.gradle
EDIT 3 Zusätzlich zu den oben aufgeführten Links ich diesen post von Jason geschrieben gefunden Atwood. Wir haben auch einen CI-Server, auf dem jenkins läuft, in dem wir unsere Checks durchführen und Entwickler über Fehler informieren können, die auf unseren Flottenregeln basieren. Das funktioniert super, allerdings ist es ein Schritt zu weit. Es wäre sehr viel wertvoller und zeitsparender, wenn Sie beim Ausführen unserer Projekte aus Android Studio Lint-Checks aus der Bibliothek ausführen, anstatt unseren Code zu übergeben, nur um herauszufinden, dass unser Projekt Regeln bricht.
Bedeutet das Ausführen von 'Gradle-Abhängigkeiten' den aarWrapper als Kompilierzeitabhängigkeit? – RaGe
@RaGe Ja, ich glaube schon, ich habe das Terminal nach dem Ausführen von './gradlew assemblyDebug' auf meinem Projekt hinzugefügt: Zeile 5': app: prepareAarWrapperDebugLibrary UP-TO-DATE' – hopeman
können Sie die ursprüngliche Gradle-Datei in die benutzerdefinierte Lint-Projekt ..Sie könnten etwas getan haben wie vergessen, ein Android-Flusen vorgefertigten Glas zum Beispiel –