Getting started¶
Installation¶
Note
When updating plugin version in your project don't forget to call clean
task to remove cached configs from previous plugin version
Plugin is available from maven central, bintray jcenter and gradle plugins portal.
plugins {
id 'ru.vyarus.quality' version '4.6.0'
}
OR
buildscript {
repositories {
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'ru.vyarus:gradle-quality-plugin:4.6.0'
}
}
apply plugin: 'ru.vyarus.quality'
Warning
Plugin must be applied after java
, java-library
or groovy
plugins. Otherwise, it will do nothing.
Note
Requires java 8 and gradle >= 5.6
If you are using lower java versions use previous plugin releases.
Usage¶
Plugin will auto detect java and groovy sources and activate required quality plugins. All tools will be configured with the default opinionated configs.
See init configs task to modify default configs
$ gradlew check
Will execute all quality plugins. Alternatively, you can use grouping task to run checks without tests.
If any violations were found then build will fail with all violations printed to console. For example like this:
23 PMD rule violations were found in 2 files
[Comments | CommentRequired] sample.(Sample.java:3)
headerCommentRequirement Required
https://pmd.github.io/pmd-5.4.0/pmd-java/rules/java/comments.html#CommentRequired
...
Or you can use build task (which also calls check):
$ gradlew build
Tip
It's better to fix all quality issues before commit.
Non strict mode¶
You can switch off strict mode to avoid build failure when quality violations are found:
quality {
strict = false
}
You will still see all violations in the output.
Suppress¶
Sometimes tool could be wrong, or your specific situation could imply such code as normal. In this case violation could be suppressed: see exact tool page for suppression hints (e.g. checstyle suppress).
It is completely normal to suppress some warnings! But don't do it too much often. Note that check name is always printed in square braces:
[Comments | CommentRequired] sample.(Sample.java:3)
@SuppressWarnings("PMD.CommentRequired")
in case of PMD.