apply plugin: 'checkstyle' dependencies { checkstyle 'com.puppycrawl.tools:checkstyle:8.20' } def checkstyleConfigDir = file("${buildscript.sourceFile.parentFile}/enforcement/checkstyle") checkstyle { configDir = checkstyleConfigDir configProperties.checkstyleConfigDir = checkstyleConfigDir maxWarnings = 500 } plugins.withType(GroovyBasePlugin) { sourceSets.all { sourceSet -> tasks.register("${sourceSet.getTaskName('checkstyle', 'groovy')}", Checkstyle) { configFile = new File(checkstyleConfigDir, "checkstyle-groovy.xml") source(allGroovy) classpath = sourceSet.compileClasspath reports.xml.destination = new File(reportsDir, "${sourceSet.name}-groovy.xml") } } } def checkstyleTasks = tasks.withType(Checkstyle) tasks.register("checkstyle") { dependsOn checkstyleTasks } check.dependsOn checkstyleTasks tasks.withType(Test).configureEach { mustRunAfter checkstyleTasks } // Verification seems broken on Java 9. apply plugin: 'com.github.sherter.google-java-format' googleJavaFormat { source = sourceSets*.allJava exclude '**/build/**/*.java' } tasks.withType(Checkstyle).configureEach { mustRunAfter verifyGoogleJavaFormat }