在构buildandroid studio项目时运行lint

我希望能够运行lint任务,当我用android studiobuild设项目,以确保lint规则被遵循。

我曾尝试使用任务依赖关系,但没有运气。 我的teamcity构build服务器使用运行lint任务的构build任务,所以这很好。 不过,当我select了debugging构build变体时,android studio似乎可以交替使用generateDebugSources和compileDebugJava任务。

这是我在build.gradle中试过的:

assemble.dependsOn lint 

Solutions Collecting From Web of "在构buildandroid studio项目时运行lint"

如果你只是想configuration你的Android Studio项目在默认运行configuration之前运行lint检查而不影响你的gradle任务的configuration方式,你可以按照下面的步骤进行。

  1. 打开运行configuration下拉菜单并select编辑

在这里输入图像说明

  1. select您的应用运行configuration

在这里输入图像说明

  1. 按“+”添加一个新的步骤

在这里输入图像说明

  1. select“Gradle-aware Make”

在这里输入图像说明

  1. input'check'并select你的应用程序模块名称并检查选项。 (我的是:app:check

在这里输入图像说明

  1. 在向上箭头移动新的check步骤之前,现有Gradle-aware make步骤

在这里输入图像说明

现在,如果发生任何lint错误,Android Studio将运行lint检查并使构build失败。

要划分皮棉和分析您的项目,只需selectAnalyze > Inspect Code

你应该得到一个很好的窗口,所有的问题。

在这里输入图像说明

另外,请查看Android Studio中的运行lint以获取更多信息。


我做了更多的研究,尝试添加到您的build.gradle

 lintOptions { abortOnError true } 

有很多选项可以应用到build.gradle

要在build.gradle中执行此操作,请将以下行添加到build.gradle中:

 android { applicationVariants.all { variant -> variant.outputs.each { output -> def lintTask = tasks["lint${variant.name.capitalize()}"] output.assemble.dependsOn lintTask } } ... } 

这使得所有的汇编任务都依赖于在Android Studio执行的每个汇编调用之前有效运行它们的lint任务。

只需运行“检查”任务

./gradlew clean check assembleRelease

这里是我的解决scheme,当你在Android Studio中单击BuildMake Project时也可以工作:

 android { .. afterEvaluate { applicationVariants.all { variant -> // variantName: eg Debug, Release def variantName = variant.name.capitalize() // now we tell gradle to always start lint after compile // eg start lintDebug after compileDebugSources project.tasks["compile${variantName}Sources"].doLast { project.tasks["lint${variantName}"].execute() } } } }