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

Apply Lint Task to All Subproject in Gradle

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

├── awesomeapp (Android App)
├── coolapp (Android App)
└── modules 
    ├── usefulprojectA (Android Lib)
    └── usefulprojectB (Android Lib)

awesomeappcoolapp 都依赖于库模块:

implementation project(':modules:usefulprojectA:')
implementation project(':modules:usefulprojectB:')

我想做的是能够说出类似的话:

./gradlew awesomeapp:lint 

甚至

./gradlew awesomeapp:build

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

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

./gradlew modules:usefulprojectA:lint
./gradlew modules:usefulprojectB:lint

加上调用主工程:

./gradlew awesomeapp:lint

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

那么如何将 Lint 任务也应用于子项目呢?

您可以通过将 checkDependencies true 添加到您的 lintOptions:

来检查模块及其依赖项
android {
    lintOptions {
        checkDependencies true
    }
}