Skip to content

Commit

Permalink
update codenarc to 3.1.0;
Browse files Browse the repository at this point in the history
add new option codenarcGroovy4 enabled by default - new groovy4 based codenarc would be used by default
  • Loading branch information
xvik committed Jun 30, 2022
1 parent d9b185a commit 311386c
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 19 deletions.
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@
* Update checkstyle config:
- Add [UnusedLocalVariable](https://checkstyle.sourceforge.io/config_coding.html#UnusedLocalVariable)
* Update pmd 6.34 -> 6.47 (java 17-18 support)
* Update codenarc 2.2.0 -> 3.0.0
* Update codenarc 2.2.0 -> 3.1.0 (groovy 4 support)
* New option: quality.codenarcGroovy4 (by default, true)
Since codenarc 3.1 separate groovy4-based codenarc jar produced (codenarc-groovy4)
It would be used by default because groovy 4 has better adoption for newer JDKs
(codenarc task started with its own groovy so it does not restrict gradle version)
If you need to use older codenarc version then switch this option off manually
* Update spotbugs 4.4.2 -> 4.7.1
* Update spotbugs plugin 4.7.9 -> 4.8.0

Expand Down
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ext {
animalsnifferVersion = '1.5.4'
cpdVersion = '3.3'
spotbugsPluginVersion = '4.8.0'
docVersion = '4.7.1'
docVersion = '4.7.0'
}

repositories { mavenLocal(); mavenCentral(); gradlePluginPortal() }
Expand Down Expand Up @@ -57,8 +57,8 @@ mkdocs {
'version': project.docVersion,
'checkstyle': '10.3.1',
'pmd': '6.47.0',
'spotbugs': '4.7.0',
'codenarc': '3.0.0',
'spotbugs': '4.7.1',
'codenarc': '3.1.0',
'spotbugsPlugin': project.spotbugsPluginVersion,
'cpd': project.cpdVersion,
'animalsnifferPlugin': project.animalsnifferVersion,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class QualityExtension {
String checkstyleVersion = '10.3.1'
String pmdVersion = '6.47.0'
String spotbugsVersion = '4.7.1'
String codenarcVersion = '3.0.0'
String codenarcVersion = '3.1.0'

/**
* Sets AnimalSniffer version.
Expand Down Expand Up @@ -95,6 +95,13 @@ class QualityExtension {
*/
boolean checkstyleBackport = !JavaVersion.current().java11Compatible

/**
* Since codenarc 3.1.0 there is a separate artifact for groovy 4 (CodeNarc-Groovy4). Gradle runs codenarc
* task with it's own groovy so by default groovy4 artifact is active. If you need to use earlier codenarc version
* then switch this option to false.
*/
boolean codenarcGroovy4 = true

/**
* Enable PMD incremental analysis (cache results between builds to speed up processing).
* This is a shortcut for pmd plugin's {@code pmd.incrementalAnalysis } configuration option.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,7 @@ import org.gradle.api.Task
import org.gradle.api.execution.TaskExecutionGraph
import org.gradle.api.plugins.GroovyPlugin
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.plugins.quality.Checkstyle
import org.gradle.api.plugins.quality.CheckstylePlugin
import org.gradle.api.plugins.quality.CodeNarc
import org.gradle.api.plugins.quality.CodeNarcPlugin
import org.gradle.api.plugins.quality.Pmd
import org.gradle.api.plugins.quality.PmdExtension
import org.gradle.api.plugins.quality.PmdPlugin
import org.gradle.api.plugins.quality.*
import org.gradle.api.reporting.Report
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceTask
Expand All @@ -24,13 +18,7 @@ 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.CheckstyleReporter
import ru.vyarus.gradle.plugin.quality.report.CodeNarcReporter
import ru.vyarus.gradle.plugin.quality.report.CpdReporter
import ru.vyarus.gradle.plugin.quality.report.HtmlReportGenerator
import ru.vyarus.gradle.plugin.quality.report.PmdReporter
import ru.vyarus.gradle.plugin.quality.report.Reporter
import ru.vyarus.gradle.plugin.quality.report.SpotbugsReporter
import ru.vyarus.gradle.plugin.quality.report.*
import ru.vyarus.gradle.plugin.quality.spotbugs.CustomSpotBugsPlugin
import ru.vyarus.gradle.plugin.quality.task.InitQualityConfigTask
import ru.vyarus.gradle.plugin.quality.util.CpdUtils
Expand Down Expand Up @@ -296,6 +284,12 @@ class QualityPlugin implements Plugin<Project> {
configFile = configLoader.resolveCodenarcConfig(false)
sourceSets = extension.sourceSets
}
if (extension.codenarcGroovy4) {
// since codenarc 3.1 different groovy4-based jar could be used
dependencies {
codenarc "org.codenarc:CodeNarc-Groovy4:${extension.codenarcVersion}"
}
}
tasks.withType(CodeNarc).configureEach {
doFirst {
configLoader.resolveCodenarcConfig()
Expand Down

0 comments on commit 311386c

Please sign in to comment.