将 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)
awesomeapp
和 coolapp
都依赖于库模块:
implementation project(':modules:usefulprojectA:')
implementation project(':modules:usefulprojectB:')
我想做的是能够说出类似的话:
./gradlew awesomeapp:lint
甚至
./gradlew awesomeapp:build
并让 lint 任务在 awesomeapp
以及 usefulprojectA
和 usefulprojectB
上执行。
目前 lint 任务仅适用于顶级项目,即 awesomeapp
。因此,如果我想对子项目进行 Lint,我必须直接在子项目上调用 lint 任务:
./gradlew modules:usefulprojectA:lint
./gradlew modules:usefulprojectB:lint
加上调用主工程:
./gradlew awesomeapp:lint
但这很笨拙,会使我的构建脚本在时间和大小上都变长。
那么如何将 Lint 任务也应用于子项目呢?
您可以通过将 checkDependencies true
添加到您的 lintOptions
:
来检查模块及其依赖项
android {
lintOptions {
checkDependencies true
}
}
我有一个多模块项目,其中包含一些 Android 应用程序和 Android 库模块。它看起来像这样:
├── awesomeapp (Android App)
├── coolapp (Android App)
└── modules
├── usefulprojectA (Android Lib)
└── usefulprojectB (Android Lib)
awesomeapp
和 coolapp
都依赖于库模块:
implementation project(':modules:usefulprojectA:')
implementation project(':modules:usefulprojectB:')
我想做的是能够说出类似的话:
./gradlew awesomeapp:lint
甚至
./gradlew awesomeapp:build
并让 lint 任务在 awesomeapp
以及 usefulprojectA
和 usefulprojectB
上执行。
目前 lint 任务仅适用于顶级项目,即 awesomeapp
。因此,如果我想对子项目进行 Lint,我必须直接在子项目上调用 lint 任务:
./gradlew modules:usefulprojectA:lint
./gradlew modules:usefulprojectB:lint
加上调用主工程:
./gradlew awesomeapp:lint
但这很笨拙,会使我的构建脚本在时间和大小上都变长。
那么如何将 Lint 任务也应用于子项目呢?
您可以通过将 checkDependencies true
添加到您的 lintOptions
:
android {
lintOptions {
checkDependencies true
}
}