当我用android studio构建项目时,我希望能够运行lint任务,以确保遵循lint规则 .
我尝试过使用任务依赖但没有运气 . 我的teamcity构建服务器使用运行lint任务的构建任务,因此效果很好 . 但是,当我选择调试版本变体时,android studio似乎可以互换使用generateDebugSources和compileDebugJava任务 .
这是我在build.gradle中尝试过的:
assemble.dependsOn lint
如果您只想将Android Studio项目配置为在默认运行配置之前运行lint检查,而不影响您的gradle任务的配置方式,则可以按照以下步骤操作 .
:app:check
Gradle-aware make
check
现在,如果发生任何lint错误,Android Studio将运行lint检查并使构建失败 .
要查看lint并分析项目,只需选择 Analyze > Inspect Code 即可 .
Analyze > Inspect Code
你应该得到一个包含所有问题的好窗口 .
另请查看Run lint in Android Studio以获取更多信息 .
我做了一些研究,尝试将其添加到你的 build.gradle .
build.gradle
lintOptions { abortOnError true }
有很多options可以申请 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
如果要强制Android Studio项目在默认运行配置之前运行lint检查而不影响gradle任务的配置方式,并且您希望在gradle构建系统中执行此操作,则可以在 android 之外添加以下块阻止在app模块的build.gradle中,如下所示:
android
android { .... lintOptions { abortOnError true } } tasks.whenTaskAdded { task -> if (task.name == 'compileDevDebugSources') { task.dependsOn lint task.mustRunAfter lint } }
将 compileDevDebugSources 替换为您已定义的所需构建变体,例如 . compileReleaseSources , compileDebugSources , compileStagingDebugSources 等
compileDevDebugSources
compileReleaseSources
compileDebugSources
compileStagingDebugSources
这是在Android Studio 3.0上测试的
这是我的解决方案,当您在Android Studio中单击构建 - 生成项目时也可以使用此解决方案:
android { .. afterEvaluate { applicationVariants.all { variant -> // variantName: e.g. Debug, Release def variantName = variant.name.capitalize() // now we tell gradle to always start lint after compile // e.g. start lintDebug after compileDebugSources project.tasks["compile${variantName}Sources"].doLast { project.tasks["lint${variantName}"].execute() } } } }
6 回答
如果您只想将Android Studio项目配置为在默认运行配置之前运行lint检查,而不影响您的gradle任务的配置方式,则可以按照以下步骤操作 .
:app:check
)Gradle-aware make
步骤之前移动新的check
步骤现在,如果发生任何lint错误,Android Studio将运行lint检查并使构建失败 .
要查看lint并分析项目,只需选择
Analyze > Inspect Code
即可 .你应该得到一个包含所有问题的好窗口 .
另请查看Run lint in Android Studio以获取更多信息 .
我做了一些研究,尝试将其添加到你的
build.gradle
.有很多options可以申请
build.gradle
要在build.gradle中执行此操作,请将以下行添加到build.gradle:
这使得所有组装任务都依赖于在Android Studio执行的每个汇编调用之前有效运行它们的lint任务 .
只需运行“检查”任务
./gradlew clean check assembleRelease
如果要强制Android Studio项目在默认运行配置之前运行lint检查而不影响gradle任务的配置方式,并且您希望在gradle构建系统中执行此操作,则可以在
android
之外添加以下块阻止在app模块的build.gradle中,如下所示:将
compileDevDebugSources
替换为您已定义的所需构建变体,例如 .compileReleaseSources
,compileDebugSources
,compileStagingDebugSources
等这是在Android Studio 3.0上测试的
这是我的解决方案,当您在Android Studio中单击构建 - 生成项目时也可以使用此解决方案: