多模块Android项目中单一lint报告

13

请问在多模块Android项目中,是否有可能只使用一个Gradle任务进行Lint检查?这样可以获得一个包含所有模块(应用和几个Android库)的HTML/XML报告。

1个回答

18
为了实现这一点,只需在使用其他模块作为依赖项的模块中配置Android Lint,并在lintOptions中启用checkDependencies。
例如:
有一个名为"app"的应用程序模块,它使用"feature_1"、"feature_2"、"feature_3"库模块作为依赖项,在"app"模块的build.gradle文件中将checkDependencies设置为true。
android{

    lintOptions{

        checkDependencies true // <---
        xmlReport false
        htmlReport true
        htmlOutput file("${project.rootDir}/build/reports/android-lint.html")

    }
}

注意:

当你运行./gradlew lint时,这将会生成每个依赖模块的报告,位于每个模块的build/reports目录下。但是,在指定的位置将生成一个与项目相关的所有lint问题的报告。


参考:https://groups.google.com/d/msg/lint-dev/TpTMBMlwPPs/WZHCu59TAwAJ


请注意,如Google Groups讨论中所示,使用合并报告后lint速度会变慢:“由于共享模块被多次分析,因此lint速度较慢。” - Carmen
感谢这些参数!我设置了 xmlReport = false htmlReport = false 并在终端中收到了所有警告。由于我有许多模块,所以我在一个地方得到了所有警告,而不是在许多 HTML 文件中。 - CoolMind
1
你知道如何创建合并的 lint-baseline 文件吗? - Lingviston
2
你好。我来自2022年。现在这个标志不会减慢lint检查的速度,而且检查是并行运行的!https://developer.android.com/studio/releases/gradle-plugin?hl=lt#lint-behavior-changes - Nikita Kulikov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接