Domanda

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.

È stato utile?

Soluzione

gradle build -x lint 

Source: Gradle User Guide : Excluding Tasks

Altri suggerimenti

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
    }
}

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.

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
}

(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
        }
    }
}

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
  }
}

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.)

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

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

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top