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

JAVA 8 CHECKSTYLE PROBLEM
I don't know why but java 8 checkstyle backport disappeared from the maven central (and github) and so your java 8 build might fail now. Use this workaround to disable checkstyle for java 8 (fixed plugin version would be released later):

    tasks.withType(Checkstyle)
            .configureEach { enabled = JavaVersion.current() > JavaVersion.VERSION_1_8 }

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