42

could someone tell me a way to avoid executing "lint" each time I run in gradle check?

I've defined in build.gradle

lintOptions { quiet true } 

However, it keeps doing this task. The problem is that it takes ages each time I have to do a check.

1
  • from command line ./gradlew clean build -x lint Commented Sep 8, 2017 at 16:24

10 Answers 10

94
gradle build -x lint 

Source: Gradle User Guide : Excluding Tasks

Sign up to request clarification or add additional context in comments.

Comments

46

You can skip it using adding -x lint when you run the check task:

./gradlew check -x lint 

If you want to skip it permanently you can add this to your build.gradle before apply plugin: 'com.android.application':

tasks.whenTaskAdded { task -> if (task.name.equals("lint")) { task.enabled = false } } 

7 Comments

Yes, finally I've started using this commands ./gradlew check -x lint
For any future visitors, you may need to change "lint" to "lintVitalRelease" because #thegoogle renamed it.
@xbakesx I just disable all task with name starting with "lint", seem to work well enough
to which build.gradle? and where? the answer is not clear
@SargeBorsch if you want to add the task.whenTaskAdded closure, you add it to your application module's build.gradle, and you can safely add that to the bottom of the file.
|
26

I just disabled the task during project setup:

android { lintOptions { tasks.lint.enabled = false } } 

Note: it's not necessary to put the statement inside android.lintOptions, but since it's configuring lint, it's nice to have them together.

1 Comment

perfect! worked for me. Had all other options but non worked except this
7

Set checkReleaseBuilds to false will disable lint check on release build. Add following scripts to your build.gradle file:

lintOptions { /** * Set whether lint should check for fatal errors during release builds. Default is true. * If issues with severity "fatal" are found, the release build is aborted. */ checkReleaseBuilds false } 

Comments

4

(Gradle 1.1.0, as packaged with Android Studio 1.1.0)

For anyone wondering how to do this with multiple subprojects, I ended up having to disable them using the root project build.gradle file like so:

task lintCheck() { getAllTasks(true).each { def lintTasks = it.value.findAll { it.name.contains("lint") } lintTasks.each { it.enabled = false } } } 

2 Comments

How / where do you call lintCheck() after it?
In my case I was able to add it as a dependency on build.
1

If you happen to have different build variants, perhaps a more robust script solution would be

afterEvaluate { Set<Task> result = tasks.findAll { task -> task.name.startsWith('lintVital') } result.each { Task task -> task.enabled = false } } 

Comments

1

use this code to disable all lint tasks using Gradle's new configuration avoidance API:

tasks.withType(com.android.build.gradle.tasks.LintBaseTask).configureEach { enabled = false } 

(tested on Android Gradle plugin 3.3.2.)

1 Comment

where you put it ?
1

-x lint not worked for com.android.tools.build:gradle:3.5.4

you should use -x lintVitalRelease -x lint -x lintVitalSourceSets instead.

For example:

gradlew --stacktrace build -x lintVitalRelease -x lint -x lintVitalSourceSets 

Comments

0

If you still want the lint task to work you can also:

project.tasks.check.dependsOn.remove("lint") 

Comments

0

In my case somehow nice solutions was not working so I looked in the error file lint-results-debug.txt and just disable errors that was actually not real issues in my code but more bugs of limited lint. Like this one:

.../Users/renetik/Development/renetik-instruments-android/project/renetik-instruments-library/src/main/res/layout/controller_chord.xml:9: Error: No orientation specified, and the default is horizontal. This is a common source of bugs when children are added dynamically. [Orientation]... 

So I added to module build gradle of renetik-instruments-library

android { ... lintOptions { disable 'IncludeLayoutParam', 'Orientation', 'UseAppTint' } } 

Now build works... and useful lint checks still there.

But also for build performance improvement of complex project this can be miracle:

afterEvaluate { tasks.findAll { it.name.startsWith('lint') }.each { it.enabled = false } } 

But you have to place or included in each module build.gradle it doesn't work in project build.gradle If its correctly aplied you can see

Task :renetik-instruments-app:lintVitalAnalyzeDebug SKIPPED

in Build Output console.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.