Skip to content

xvik/gradle-quality-plugin

Repository files navigation

Gradle quality plugin

License CI Appveyor build status codecov

DOCUMENTATION http://xvik.github.io/gradle-quality-plugin

About

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 not compatible with the gradle configuration cache

Summary
  • Configuration: quality
  • Tasks:
    • initQualityConfig - copy default configs for customization
    • checkQuality[Main] - run quality tasks for main (or any other) source set
  • Enable plugins: Checkstyle, PMD, SpotBugs, CodeNarc

Setup

NOTE: when updating plugin version in your project don't forget to call clean task to remove cached configs from previous plugin version

Maven Central Gradle Plugin Portal

plugins {
    id 'ru.vyarus.quality' version '5.0.0'
}

OR

buildscript {
    repositories {
        mavenCentral()
        gradlePluginPortal()
    }
    dependencies {
        classpath 'ru.vyarus:gradle-quality-plugin:5.0.0'
    }
}
apply plugin: 'ru.vyarus.quality'

Minimal requirements: java 8, gradle 7

Compatibility

Plugin compiled for java 8, compatible with java 11 (and above)

Gradle Version
7-8 5.0.0
5.6-6 4.9.0
5.1 4.2.2
4.1 3.4.0
older 2.4.0

Java tools require sourceCompatibility=1.8 (or above).

Version 3.3.0 is the latest supporting sourceCompatibility=1.6

Snapshots

Snapshots may be used through JitPack
  • Go to JitPack project page

  • Select Commits section and click Get it on commit you want to use (you may need to wait while version builds if no one requested it before) or use master-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'
    }

Usage

Read documentation

Might also like


gradle plugin generator