diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a41631c..90685d91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +* (BREAKING) Drop gradle 5 and 6 support +* Update spotbugs plugin to 5.2.5 (#94) + - Remove spotbugsShowStackTraces option because it's not used by spotbugs anymore + - Custom xsl file not used for html report - native html report generation used instead + ### 4.9.0 (2023-02-18) * Gradle 8 support (#77) * Update checkstyle 10.3.1 -> 10.6.0 diff --git a/build.gradle b/build.gradle index 60dee927..f1e47649 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,9 @@ plugins { id 'ru.vyarus.mkdocs' version '3.0.0' } -sourceCompatibility = 1.8 +java { + sourceCompatibility = 1.8 +} wrapper { gradleVersion = '8.5' @@ -23,7 +25,7 @@ wrapper { ext { animalsnifferVersion = '1.7.1' cpdVersion = '3.3' - spotbugsPluginVersion = '4.8.0' + spotbugsPluginVersion = '5.2.5' docVersion = '4.9.0' } @@ -31,7 +33,7 @@ repositories { mavenLocal(); mavenCentral(); gradlePluginPortal() } dependencies { implementation "com.github.spotbugs.snom:spotbugs-gradle-plugin:$spotbugsPluginVersion" - testImplementation('org.spockframework:spock-core:2.0-groovy-2.5') { + testImplementation('org.spockframework:spock-core:2.3-groovy-3.0') { exclude group: 'org.codehaus.groovy' } testImplementation "ru.vyarus:gradle-animalsniffer-plugin:$animalsnifferVersion" @@ -85,7 +87,7 @@ nexusPublishing { } // skip signing for jitpack (snapshots) -tasks.withType(Sign) {onlyIf { !System.getenv('JITPACK') }} +tasks.withType(Sign).configureEach { onlyIf { !System.getenv('JITPACK') } } // Required signing properties for release: signing.keyId, signing.password and signing.secretKeyRingFile // (https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials) diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/ConfigLoader.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/ConfigLoader.groovy index 2bf5b9e5..59d0501a 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/ConfigLoader.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/ConfigLoader.groovy @@ -20,7 +20,6 @@ class ConfigLoader { private final String pmd = 'pmd/pmd.xml' private final String cpdXsl = 'cpd/cpdhtml.xslt' private final String spotbugsExclude = 'spotbugs/exclude.xml' - private final String spotbugsXsl = 'spotbugs/html-report-style.xsl' private final String codenarc = 'codenarc/codenarc.xml' Project project @@ -56,10 +55,6 @@ class ConfigLoader { resolve(spotbugsExclude, copyDefaultFile) } - File resolveSpotbugsXsl(boolean copyDefaultFile = true) { - resolve(spotbugsXsl, copyDefaultFile) - } - File resolveCodenarcConfig(boolean copyDefaultFile = true) { resolve(codenarc, copyDefaultFile) } @@ -71,7 +66,7 @@ class ConfigLoader { */ void initUserConfigs(boolean override) { init() - [checkstyle, checkstyleSuppressions, pmd, cpdXsl, codenarc, spotbugsExclude, spotbugsXsl].each { + [checkstyle, checkstyleSuppressions, pmd, cpdXsl, codenarc, spotbugsExclude].each { copyConfig(configDir, it, override) } } diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityExtension.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityExtension.groovy index 723c62d5..e32f6115 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityExtension.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityExtension.groovy @@ -125,13 +125,6 @@ class QualityExtension { */ boolean cpdUnifySources = true - /** - * Shortcut for {@code spotbugs.showStackTraces}. Original spotbugs property is enabled by default, causing - * not pretty exception logs in non strict mode (when not fails on errors). This option was introduced to change - * the default to false and not show that nasty stacktrace, but still provide an easy way to revert default back. - */ - boolean spotbugsShowStackTraces = false - /** * The analysis effort level. The value specified should be one of min, default, or max. * Higher levels increase precision and find more bugs at the expense of running time and diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityPlugin.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityPlugin.groovy index 2883e902..dfbbc07b 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityPlugin.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/QualityPlugin.groovy @@ -10,14 +10,12 @@ import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.plugins.GroovyPlugin import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.quality.* -import org.gradle.api.reporting.Report import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceTask import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskState import org.gradle.api.tasks.compile.JavaCompile import org.gradle.process.CommandLineArgumentProvider -import org.gradle.util.GradleVersion import ru.vyarus.gradle.plugin.quality.report.* import ru.vyarus.gradle.plugin.quality.spotbugs.CustomSpotBugsPlugin import ru.vyarus.gradle.plugin.quality.task.InitQualityConfigTask @@ -158,13 +156,6 @@ class QualityPlugin implements Plugin { tasks.withType(Checkstyle).configureEach { doFirst { - if (GradleVersion.current() < GradleVersion.version('6.0')) { - // required for gradle < 6 because it will not set config_loc if target dir does not exists - // https://github.com/gradle/gradle/issues/11058 - String propName = 'config_loc' - configProperties[propName] = configProperties[propName] - ?: configLoader.resolveCheckstyleConfigDir().absolutePath - } if (extension.checkstyleBackport) { project.logger.warn("WARNING: checkstyle-backport-jre8 (${extension.checkstyleVersion})" + ' used instead of regular checkstyle: https://checkstyle.org/#Backport') @@ -172,8 +163,8 @@ class QualityPlugin implements Plugin { configLoader.resolveCheckstyleConfig() applyExcludes(it, extension) } - enableReport(reports.xml) - enableReport(reports.html, extension.htmlReports) + reports.xml.required.set(true) + reports.html.required.set(extension.htmlReports) } } configurePluginTasks(project, extension, Checkstyle, 'checkstyle', new CheckstyleReporter(configLoader)) @@ -209,8 +200,8 @@ class QualityPlugin implements Plugin { configLoader.resolvePmdConfig() applyExcludes(it, extension) } - enableReport(reports.xml) - enableReport(reports.html, extension.htmlReports) + reports.xml.required.set(true) + reports.html.required.set(extension.htmlReports) } } configurePluginTasks(project, extension, Pmd, 'pmd', new PmdReporter()) @@ -231,8 +222,6 @@ class QualityPlugin implements Plugin { spotbugs { toolVersion = extension.spotbugsVersion ignoreFailures = !extension.strict - // when enabled show an additional stacktrace in non strict mode (plugin default changed) - showStackTraces = extension.spotbugsShowStackTraces effort = extension.spotbugsEffort reportLevel = extension.spotbugsLevel @@ -261,7 +250,10 @@ class QualityPlugin implements Plugin { ))) reports { xml { - enableReport(it) + required.set(true) + } + html { + required.set(extension.htmlReports) } } } @@ -296,8 +288,8 @@ class QualityPlugin implements Plugin { configLoader.resolveCodenarcConfig() applyExcludes(it, extension) } - enableReport(reports.xml) - enableReport(reports.html, extension.htmlReports) + reports.xml.required.set(true) + reports.html.required.set(extension.htmlReports) } } configurePluginTasks(project, extension, CodeNarc, 'codenarc', new CodeNarcReporter()) @@ -370,7 +362,7 @@ class QualityPlugin implements Plugin { Class cpdTasksType = plugin.class.classLoader.loadClass('de.aaschmid.gradle.plugins.cpd.Cpd') // reports applied for all registered cpd tasks prj.tasks.withType(cpdTasksType).configureEach { task -> - enableReport(reports.xml) + reports.xml.required.set(true) doFirst { configLoader.resolveCpdXsl() } @@ -390,14 +382,6 @@ class QualityPlugin implements Plugin { } } - private void enableReport(Report report, boolean enable = true) { - if (GradleVersion.current() < GradleVersion.version('7.0')) { - report.enabled = enable - } else { - report.required.set(enable) - } - } - private void applyReporter(Project project, String type, Reporter reporter, boolean consoleReport, boolean htmlReport) { boolean generatesHtmlReport = htmlReport && HtmlReportGenerator.isAssignableFrom(reporter.class) diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/ReportUtils.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/ReportUtils.groovy index 694b7837..01e682c0 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/ReportUtils.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/ReportUtils.groovy @@ -6,7 +6,6 @@ import org.gradle.api.Project import org.gradle.api.plugins.JavaBasePlugin import org.gradle.api.reporting.Report import org.gradle.api.tasks.SourceSet -import org.gradle.util.GradleVersion /** * Reporting utils. @@ -112,9 +111,6 @@ class ReportUtils { if (report == null) { return null } - if (GradleVersion.current() < GradleVersion.version('7.0')) { - return report.destination - } // Provider for gradle 7 and Property for gradle 8 // static compilation must be disabled for method! Object output = report.outputLocation diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy index 1f24b357..5d888722 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy @@ -9,15 +9,13 @@ import ru.vyarus.gradle.plugin.quality.util.FileUtils /** * Prints spotbugs errors (from xml report) into console and generates html report using custom xsl. - * Gradle spotbugs plugin support html report generation too, but it can't generate both xml and html at the same - * time (so we have to generate html separately, because xml report is required for console reporting). * * @author Vyacheslav Rusakov * @since 28.01.2018 */ @CompileStatic -class SpotbugsReporter implements Reporter, HtmlReportGenerator { - private static final String XML = 'XML' +class SpotbugsReporter implements Reporter { + private static final String XML = 'xml' ConfigLoader configLoader @@ -70,26 +68,6 @@ class SpotbugsReporter implements Reporter, HtmlReportGenerator htmlReportFile.lastModified()) { - project.ant.xslt(in: reportFile, - style: configLoader.resolveSpotbugsXsl(), - out: htmlReportPath, - ) - } - } - @CompileStatic(TypeCheckingMode.SKIP) private Map buildDescription(Node result) { Map desc = [:] diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/util/SpotbugsUtils.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/util/SpotbugsUtils.groovy index b0c430db..38140f7e 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/util/SpotbugsUtils.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/util/SpotbugsUtils.groovy @@ -7,7 +7,6 @@ import groovy.xml.XmlUtil import org.gradle.api.Project import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.compile.JavaCompile -import org.gradle.util.GradleVersion import org.slf4j.Logger import ru.vyarus.gradle.plugin.quality.QualityExtension @@ -84,9 +83,7 @@ class SpotbugsUtils { } // apt is a special dir, not mentioned in sources! JavaCompile javaCompile = task.project.tasks.findByName(set.compileJavaTaskName) as JavaCompile - File aptGenerated = GradleVersion.current() < GradleVersion.version('7.0') - ? javaCompile.options.annotationProcessorGeneratedSourcesDirectory - : javaCompile.options.generatedSourceOutputDirectory.get().asFile + File aptGenerated = javaCompile.options.generatedSourceOutputDirectory.get().asFile Set ignored = FileUtils.resolveIgnoredFiles(task.sourceDirs.asFileTree, extension.exclude) // exclude all apt-generated files diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/BuildCacheSupportKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/BuildCacheSupportKitTest.groovy index d677a3ae..31dd9cd8 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/BuildCacheSupportKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/BuildCacheSupportKitTest.groovy @@ -1,5 +1,6 @@ package ru.vyarus.gradle.plugin.quality +import groovy.ant.AntBuilder import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.TaskOutcome import spock.lang.TempDir @@ -20,7 +21,7 @@ class BuildCacheSupportKitTest extends AbstractKitTest { file("settings.gradle") << """ rootProject.name='my-project' buildCache { - local(DirectoryBuildCache) { + local { directory = new File('${cacheDir.canonicalPath.replace('\\', '\\\\')}') } } @@ -91,7 +92,7 @@ class BuildCacheSupportKitTest extends AbstractKitTest { // build cache will survive within test only!! file("settings.gradle") << """ buildCache { - local(DirectoryBuildCache) { + local { directory = new File('${cacheDir.canonicalPath.replace('\\', '\\\\')}') } } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ConsoleReportsDisableKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ConsoleReportsDisableKitTest.groovy index 067367e9..c4c44ef2 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ConsoleReportsDisableKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ConsoleReportsDisableKitTest.groovy @@ -35,13 +35,14 @@ class ConsoleReportsDisableKitTest extends AbstractKitTest { fileFromClasspath('src/main/groovy/sample/GSample.groovy', '/ru/vyarus/gradle/plugin/quality/groovy/sample/GSample.groovy') when: "run check task with both sources" + debug() BuildResult result = run('check') then: "all plugins detect violations" result.task(":check").outcome == TaskOutcome.SUCCESS result.output.contains('CodeNarc rule violations were found') result.output.contains('Checkstyle rule violations were found') - result.output.contains('SpotBugs violations were found') + result.output.contains('SpotBugs ended with exit code 1') result.output.contains('PMD rule violations were found') then: "no console reporting performed" diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeKitTest.groovy index 930b3407..e3871c89 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeKitTest.groovy @@ -123,11 +123,13 @@ class ExcludeKitTest extends AbstractKitTest { build(""" plugins { id 'groovy' - id 'ru.vyarus.animalsniffer' version '1.5.0' + id 'ru.vyarus.animalsniffer' version '1.7.1' id 'ru.vyarus.quality' } - sourceCompatibility = 1.8 + java { + sourceCompatibility = 1.8 + } quality { strict false diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeSourcesKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeSourcesKitTest.groovy index 87b56e23..80f8145e 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeSourcesKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/ExcludeSourcesKitTest.groovy @@ -114,11 +114,13 @@ class ExcludeSourcesKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'ru.vyarus.animalsniffer' version '1.5.0' + id 'ru.vyarus.animalsniffer' version '1.7.1' id 'ru.vyarus.quality' } - sourceCompatibility = 1.8 + java { + sourceCompatibility = 1.8 + } sourceSets.main { java { diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/GeneratedSourceExcludeKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/GeneratedSourceExcludeKitTest.groovy index 6ea5fb69..4d6269b3 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/GeneratedSourceExcludeKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/GeneratedSourceExcludeKitTest.groovy @@ -15,7 +15,7 @@ class GeneratedSourceExcludeKitTest extends AbstractKitTest { plugins { id 'java' id 'ru.vyarus.quality' - id 'org.hidetake.swagger.generator' version '2.18.1' + id 'org.hidetake.swagger.generator' version '2.19.2' } repositories { mavenCentral() } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/MultiModuleUseKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/MultiModuleUseKitTest.groovy index 9dc7b5f3..ffa0b3a7 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/MultiModuleUseKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/MultiModuleUseKitTest.groovy @@ -35,19 +35,16 @@ class MultiModuleUseKitTest extends AbstractKitTest { file('settings.gradle') << "include 'mod1', 'mod2'" fileFromClasspath('mod1/src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java') - fileFromClasspath('mod2/src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java') + fileFromClasspath('mod2/src/main/java/sample/Sample2.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample2.java') when: "run check for both modules" BuildResult result = run('check') then: "violations detected in module only" - unifyString(result.output).replaceAll("Total time: .*", "") + def out = unifyString(result.output).replaceAll("Total time: .*", "") // only on jdk 8 .replaceAll("WARNING: checkstyle-backport-jre8 .*\n", "") - .trim().startsWith("""> Task :mod1:compileJava -> Task :mod1:processResources NO-SOURCE -> Task :mod1:classes - + out.contains(""" > Task :mod1:checkstyleMain Checkstyle rule violations were found. See the report at: file:///tmp/junit6300057182805361069/mod1/build/reports/checkstyle/main.html Checkstyle files with violations: 1 @@ -64,16 +61,9 @@ Checkstyle violations by severity: [error:2] Missing a Javadoc comment. http://checkstyle.sourceforge.io/config_javadoc.html#MissingJavadocType +""".replaceAll("tmp/junit6300057182805361069", ReportUtils.noRootFilePath(testProjectDir))) -> Task :mod1:compileTestJava NO-SOURCE -> Task :mod1:processTestResources NO-SOURCE -> Task :mod1:testClasses UP-TO-DATE -> Task :mod1:test NO-SOURCE -> Task :mod1:check -> Task :mod2:compileJava -> Task :mod2:processResources NO-SOURCE -> Task :mod2:classes - + out.contains(""" > Task :mod2:checkstyleMain Checkstyle rule violations were found. See the report at: file:///tmp/junit6300057182805361069/mod2/build/reports/checkstyle/main.html Checkstyle files with violations: 1 @@ -82,21 +72,14 @@ Checkstyle violations by severity: [error:2] 2 Checkstyle rule violations were found in 1 files -[Misc | NewlineAtEndOfFile] sample.(Sample.java:1) +[Misc | NewlineAtEndOfFile] sample.(Sample2.java:1) File does not end with a newline. http://checkstyle.sourceforge.io/config_misc.html#NewlineAtEndOfFile -[Javadoc | MissingJavadocType] sample.(Sample.java:6) +[Javadoc | MissingJavadocType] sample.(Sample2.java:6) Missing a Javadoc comment. http://checkstyle.sourceforge.io/config_javadoc.html#MissingJavadocType - -> Task :mod2:compileTestJava NO-SOURCE -> Task :mod2:processTestResources NO-SOURCE -> Task :mod2:testClasses UP-TO-DATE -> Task :mod2:test NO-SOURCE -> Task :mod2:check - -BUILD SUCCESSFUL""".replaceAll("tmp/junit6300057182805361069", ReportUtils.noRootFilePath(testProjectDir))) +""".replaceAll("tmp/junit6300057182805361069", ReportUtils.noRootFilePath(testProjectDir))) } } \ No newline at end of file diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/QualityPluginLegacyKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/QualityPluginLegacyKitTest.groovy index 223080a0..47777a64 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/QualityPluginLegacyKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/QualityPluginLegacyKitTest.groovy @@ -9,10 +9,9 @@ import org.gradle.testkit.runner.TaskOutcome */ class QualityPluginLegacyKitTest extends AbstractKitTest { - // 5.6 only because of spotbugs, other plugins works with 5.1 - public static final String GRADLE_VERSION = '5.6' + public static final String GRADLE_VERSION = '7.0' - def "Check java and groovy checks with gradle 5.6 (previous)"() { + def "Check java and groovy checks with gradle"() { setup: build(""" plugins { diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/UpstreamKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/UpstreamKitTest.groovy index 90f653c1..3ef20c47 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/UpstreamKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/UpstreamKitTest.groovy @@ -12,7 +12,7 @@ import org.gradle.testkit.runner.TaskOutcome class UpstreamKitTest extends AbstractKitTest { - public static final String GRADLE = '8.0' + public static final String GRADLE = '8.5' def "Check java checks"() { setup: diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/reporter/CpdReporterTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/reporter/CpdReporterTest.groovy index 888f158e..ba52d8d7 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/reporter/CpdReporterTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/reporter/CpdReporterTest.groovy @@ -16,7 +16,7 @@ class CpdReporterTest extends AbstractKitTest { build(""" plugins { id 'groovy' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } @@ -91,7 +91,7 @@ sample.cpd.(Struct1.java:6) build(""" plugins { id 'groovy' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/task/InitQualityConfigTaskKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/task/InitQualityConfigTaskKitTest.groovy index 928dbc9a..9e065d3f 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/task/InitQualityConfigTaskKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/task/InitQualityConfigTaskKitTest.groovy @@ -32,7 +32,6 @@ class InitQualityConfigTaskKitTest extends AbstractKitTest { file('config/checkstyle/checkstyle.xml').exists() file('config/codenarc/codenarc.xml').exists() file('config/spotbugs/exclude.xml').exists() - file('config/spotbugs/html-report-style.xsl').exists() file('config/pmd/pmd.xml').exists() file('config/cpd/cpdhtml.xslt').exists() } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/animalsniffer/AnimalSnifferIntegrationKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/animalsniffer/AnimalSnifferIntegrationKitTest.groovy index cdf7fc65..4bf6836f 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/animalsniffer/AnimalSnifferIntegrationKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/animalsniffer/AnimalSnifferIntegrationKitTest.groovy @@ -15,11 +15,13 @@ class AnimalSnifferIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'ru.vyarus.animalsniffer' version '1.5.0' + id 'ru.vyarus.animalsniffer' version '1.7.1' id 'ru.vyarus.quality' } - sourceCompatibility = 1.8 + java { + sourceCompatibility = 1.8 + } quality { strict false @@ -52,7 +54,7 @@ class AnimalSnifferIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'ru.vyarus.animalsniffer' version '1.5.0' + id 'ru.vyarus.animalsniffer' version '1.7.1' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdExcludesKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdExcludesKitTest.groovy index 037ead0a..285900d1 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdExcludesKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdExcludesKitTest.groovy @@ -15,7 +15,7 @@ class CpdExcludesKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } @@ -51,7 +51,7 @@ class CpdExcludesKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdIntegrationKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdIntegrationKitTest.groovy index 3b0002fe..d4fe6df2 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdIntegrationKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdIntegrationKitTest.groovy @@ -15,7 +15,7 @@ class CpdIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } @@ -53,7 +53,7 @@ class CpdIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } @@ -91,7 +91,7 @@ class CpdIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } @@ -120,7 +120,7 @@ class CpdIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'ru.vyarus.quality' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' } allprojects { @@ -166,7 +166,7 @@ class CpdIntegrationKitTest extends AbstractKitTest { build(""" plugins { id 'groovy' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdReportsDisableTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdReportsDisableTest.groovy index 1e4d73d4..9806c112 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdReportsDisableTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/CpdReportsDisableTest.groovy @@ -15,7 +15,7 @@ class CpdReportsDisableTest extends AbstractKitTest { build(""" plugins { id 'java' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/MultipleCpdTasksKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/MultipleCpdTasksKitTest.groovy index b27b5140..abd9e861 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/MultipleCpdTasksKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/cpd/MultipleCpdTasksKitTest.groovy @@ -15,7 +15,7 @@ class MultipleCpdTasksKitTest extends AbstractKitTest { build(""" plugins { id 'groovy' - id 'de.aaschmid.cpd' version '3.1' + id 'de.aaschmid.cpd' version '3.3' id 'ru.vyarus.quality' } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/pmd/PmdIncrementalAnalysisKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/pmd/PmdIncrementalAnalysisKitTest.groovy index 58770e08..3ee07a25 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/pmd/PmdIncrementalAnalysisKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/pmd/PmdIncrementalAnalysisKitTest.groovy @@ -46,71 +46,4 @@ class PmdIncrementalAnalysisKitTest extends AbstractKitTest { then: "all plugins detect violations" result.task(":pmdMain").outcome == TaskOutcome.SUCCESS } - - - def "Check pmd incremental mode enabling on gradle < 6.4"() { - setup: - build(""" - plugins { - id 'java' - id 'ru.vyarus.quality' - } - - quality { - strict false - - pmdIncremental = true - } - - task validator { - doFirst() { - if (!pmdMain.incrementalAnalysis.get()) { - throw new IllegalStateException('PMD incremental analysis not enabled'); - } - } - } - - repositories { - mavenCentral() //required for testKit run - } - """) - - fileFromClasspath('src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java') - - when: "run check task with java sources" - BuildResult result = runVer('6.3','pmdMain', 'validator') - - then: "all plugins detect violations" - result.task(":pmdMain").outcome == TaskOutcome.SUCCESS - } - - def "Check pmd incremental mode not enabled on older gradle"() { - setup: - build(""" - plugins { - id 'java' - id 'ru.vyarus.quality' - } - - quality { - strict false - spotbugs = false - - pmdIncremental = true - } - - repositories { - mavenCentral() //required for testKit run - } - """) - - fileFromClasspath('src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java') - - when: "run check task with java sources" - BuildResult result = runVer('5.1', 'pmdMain') - - then: "all plugins detect violations" - result.task(":pmdMain").outcome == TaskOutcome.SUCCESS - result.output.contains("WARNING: PMD incremental analysis option ignored, because it's supported only from gradle 5.6") - } } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/spotbugs/ShowStackTraceOptionTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/spotbugs/ShowStackTraceOptionTest.groovy index 76149086..4706c9bd 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/spotbugs/ShowStackTraceOptionTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/tools/spotbugs/ShowStackTraceOptionTest.groovy @@ -51,50 +51,6 @@ class ShowStackTraceOptionTest extends AbstractKitTest { result.task(":check").outcome == TaskOutcome.SUCCESS def output = result.output output.contains("1 (0 / 1 / 0) SpotBugs violations were found in 1 files") - !output.contains("org.gradle.api.GradleException: 1 SpotBugs violations were found. See the report at:") - } - - def "Check original spotbugs behavior"() { - setup: - build(""" - plugins { - id 'groovy' - id 'ru.vyarus.quality' - } - - quality { - spotbugsShowStackTraces true - checkstyle false - pmd false - strict false - } - - afterEvaluate { - tasks.withType(com.github.spotbugs.snom.SpotBugsTask).configureEach { - classes = classes.filter { - !it.path.endsWith('Sample2.class') - } - } - } - - repositories { - mavenCentral() //required for testKit run - } - - dependencies { - implementation localGroovy() - } - """) - - fileFromClasspath('src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java') - fileFromClasspath('src/main/java/sample/Sample2.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample2.java') - - when: "run check task with java and groovy sources" - BuildResult result = run('check') - - then: "spotbugs detect violations and print stack trace" - result.task(":check").outcome == TaskOutcome.SUCCESS - def output = result.output - output.contains "org.gradle.api.GradleException: 1 SpotBugs violations were found.See the report at:" + !output.contains("org.gradle.api.GradleException:") } } diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/util/ConfigInitSyncTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/util/ConfigInitSyncTest.groovy index bbf6bdb2..f2063540 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/util/ConfigInitSyncTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/util/ConfigInitSyncTest.groovy @@ -41,7 +41,7 @@ class ConfigInitSyncTest extends AbstractTest { it.delete() } } - assert reference.size() == 7 + assert reference.size() == 6 when: "initializing configs concurrently" @@ -82,7 +82,7 @@ class ConfigInitSyncTest extends AbstractTest { it.delete() } } - assert reference.size() == 7 + assert reference.size() == 6 when: "initializing configs concurrently"