DOCUMENTATION http://xvik.github.io/gradle-quality-plugin
Version 6.0 brings a few breaking changes: see migration guide
Static code analysis for Java and Groovy projects using Checkstyle, PMD, CPD, SpotBugs and CodeNarc. Plugin implements unified console output for all quality plugins, which greatly simplifies developer workflow: only console required for working with violations and makes it feel the same as java compiler errors.
For example, in IntelliJ Idea it would look like:
Features:
- Zero configuration by default: provided opinionated configs applied to all quality plugins
- Default configuration files may be customized
- Adds extra javac lint options to see more warnings
- Complete console output for all quality plugins
- Html and xml reports for all plugins (custom xsl used for findbugs html report because it can't generate both xml and html reports)
- Grouping tasks to run registered quality plugins for exact source set (e.g. checkQualityMain)
NOTE: the plugin is compatible with the gradle configuration cache
- Configuration:
quality
- Tasks:
initQualityConfig
- copy default configs for customizationcheckQuality[Main]
- run quality tasks for main (or any other) source setqualityToolVersions
- print versions of used quality toolscopyQualityConfigs
- internal task used to prepare default config files for quality tools (required for proper caching)
- Enable plugins: Checkstyle, PMD, CodeNarc
- Configure external plugins (when applied): SpotBugs, CPD, AnimalSniffer
NOTE: when updating plugin version in your project don't forget to call clean
task to remove cached configs from previous plugin version
plugins {
id 'ru.vyarus.quality' version '6.0.1'
}
OR
buildscript {
repositories {
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'ru.vyarus:gradle-quality-plugin:6.0.1'
}
}
apply plugin: 'ru.vyarus.quality'
IMPORTANT: if spotbugs is required, spotbugs plugin must be applied manually:
plugins {
id 'com.github.spotbugs' version '6.2.6' apply false
}
On multi-module projects it would be enough to declare spotbugs in the root project: quality plugin will detect its presence in build classpath and apply in modules automatically.
Plugin compiled for java 8, compatible with java 11 and above.
Supported gradle 7.1 - 9.
Gradle | Version |
---|---|
7.1-9 | 6.0.1 |
7.0 | 5.0.0 |
5.6-6 | 4.9.0 |
5.1 | 4.2.2 |
4.1 | 3.4.0 |
older | 2.4.0 |
Java requirements for quality tools:
Tool | Default version | Java version |
---|---|---|
Checkstyle | 11.0.1 | 17 |
PMD | 7.16.0 | 8 |
SpotBugs | 4.9.4 | 11 |
CodeNarc | 3.6.0 | 8 |
Incompatible tools will not be enabled: for example, on java 11 Checkstyle will not be enabled.
See details about configuration for exact java versions
Snapshots may be used through JitPack
-
Go to JitPack project page
-
Select
Commits
section and clickGet it
on commit you want to use (you may need to wait while version builds if no one requested it before) or usemaster-SNAPSHOT
to use the most recent snapshot -
Add to
settings.gradle
(top most!) (exact commit hash might be used as version):pluginManagement { resolutionStrategy { eachPlugin { if (requested.id.id == 'ru.vyarus.quality') { useModule('ru.vyarus:gradle-quality-plugin:master-SNAPSHOT') } } } repositories { gradlePluginPortal() maven { url 'https://jitpack.io' } } }
-
Use plugin without declaring version:
plugins { id 'ru.vyarus.quality' }
Read documentation
- mkdocs-plugin - beautiful project documentation generation
- python-plugin - use python modules in build
- pom-plugin - improves pom generation
- java-lib-plugin - avoid boilerplate for java or groovy library project
- github-info-plugin - pre-configure common plugins with github related info
- animalsniffer-plugin - java compatibility checks
- java-library generator - java library project generator