将 Lint 任务应用到 Gradle 中的所有子项目

Dat*_*ino 3 android lint gradle

我有一个包含一些 Android 应用程序和 Android 库模块的多模块项目。它看起来像这样:

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 awesomeapp (Android App)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 coolapp (Android App)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 modules \n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 usefulprojectA (Android Lib)\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 usefulprojectB (Android Lib)\n
Run Code Online (Sandbox Code Playgroud)\n\n

awesomeappcoolapp依赖于库模块:

\n\n
implementation project(':modules:usefulprojectA:')\nimplementation project(':modules:usefulprojectB:')\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想做的是能够说这样的话:

\n\n
./gradlew awesomeapp:lint \n
Run Code Online (Sandbox Code Playgroud)\n\n

甚至

\n\n
./gradlew awesomeapp:build\n
Run Code Online (Sandbox Code Playgroud)\n\n

并让 lint 任务在和awesomeapp上执行。usefulprojectAusefulprojectB

\n\n

目前,lint 任务仅适用于顶级项目,即awesomeapp. 因此,如果我想对子项目进行 Lint,我必须直接在子项目上调用 lint 任务:

\n\n
./gradlew modules:usefulprojectA:lint\n./gradlew modules:usefulprojectB:lint\n
Run Code Online (Sandbox Code Playgroud)\n\n

再加上调用主项目:

\n\n
./gradlew awesomeapp:lint\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这很笨拙,并且会使我的构建脚本在时间和大小上都更长。

\n\n

那么如何将 Lint 任务应用到子项目中呢?

\n

ita*_*kin 5

checkDependencies true您可以通过添加到您的:来检查模块及其依赖项lintOptions

android {
    lintOptions {
        checkDependencies true
    }
}
Run Code Online (Sandbox Code Playgroud)