-
Notifications
You must be signed in to change notification settings - Fork 89
Using Lint
To apply this plugin:
plugins {
id 'nebula.lint' version '5.1.0'
}
Alternatively:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
Define which rules you would like to lint against:
gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
For an enterprise build, we recommend defining the lint rules in a init.gradle
script or in a gradle script that is included via the Gradle apply from
mechanism.
For multimodule projects, we recommend applying the plugin in an allprojects block:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
}
When nebula.lint
is applied, build scripts will be automatically linted by a task called lintGradle
after the last task in the task graph executes. Results are reported in the console (with ANSI coloring when the console is a TTY).
So as not to interfere with common informational tasks, linting does not run if the only tasks in the task graph are 'dependencies', 'dependencyInsight', 'help', 'components', 'projects', 'model', or 'properties'.
For multi-project builds, the lint task will only run once, and will examine every subproject plus the root project.
If you do not wish to automatically run lintGradle
after most tasks, you can set gradleLint.alwaysRun = false
and run it manually at your convenience.
Run ./gradlew fixGradleLint
(or ./gradlew fixLintGradle
, which is an alias) to automatically fix your build scripts! The auto-fix process lists all violations and how they were fixed (when a fix was possible):
Run ./gradlew generateGradleLintReport
to generate a separate report. By default, this task is configured to generate an HTML report. You can change the default by setting:
gradleLint.reportFormat = 'xml' // or 'text' or the default of 'html'