Mój zespół i ja opracowujemy aplikacje na Androida i zdecydowaliśmy się na wytyczne dotyczące kodowania, które wszyscy powinni przestrzegać. Dlatego rozpoczęła wdrażanie zasad zwyczaj lint jak na poniższych linków:Niestandardowa łatka lintingowa w Androidzie
Problem, który mam jest rzeczywiście wdrażania tych zasad lint nad projektem podstawa. Po uruchomieniu ./gradlew clean build test install
, zgodnie z określonymi regułami, wszystko jest w porządku. Jednak, kiedy buduję bibliotekę aar z ./gradlew aarWrapper:assemble
i dodaję ją do mojego folderu libs
, linting nie działa.
I dodaje następujące do mojego pliku build.gradle
dodać biblioteki
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name: 'aarWrapper-debug', ext: 'aar')
}
Nie jestem pewien, co mi brakuje, ale gdy uruchamiam ./gradlew lint
Prowadzi LINTER ale nie z moich własnych reguł .. Każda pomoc, wskazówki i porady są mile widziane.
EDIT 1
Oto wyjściowy zacisk przy uruchamianiu 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
Rozwidlający projekt: https://github.com/apertomove/linette
build.gradle: https://github.com/apertomove/linette/blob/apertomove-linette/build.gradle
EDIT 3 Oprócz powyższych łączy znalazłem ten post napisany przez Jason Atwood. My też mamy serwer CI z uruchomionymi JASKINI, w którym możemy uruchamiać nasze kontrole i informować deweloperów o błędach w oparciu o nasze zasady lint. Działa to świetnie, jednak jest to jeden krok daleko. Byłoby o wiele bardziej wartościowe i zaoszczędzony czas, aby uruchamiać sprawdzanie lint z biblioteki podczas uruchamiania naszych projektów poza Androidem Studio, zamiast zatwierdzać nasz kod tylko po to, aby dowiedzieć się, że nasz projekt łamie zasady.
Czy uruchamianie 'gradle dependencies' pokazuje aarWrapper jako zależność od czasu kompilacji? – RaGe
@RaGe Tak, wierzę w to, powyżej dodałem terminal po uruchomieniu './gradlew assembleDebug' na moim projekcie: wiersz 5': app: prepareAarWrapperDebugLibrary UP-TO-DATE' – hopeman
czy możesz wysłać oryginalny plik gradle do niestandardowy projekt lint ..mógłbyś zrobić coś takiego, jak zapomnieć o wbudowanym słoiku z wbudowanym androidem, na przykład –