You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2025/07/14 03:43:58 UTC
(grails-core) 01/02: build: add support for checkstyle / spotless to grails-core
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch style-enforcement
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 30a1f02421c4f743a3de7464242c6f82523a3172
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sun Jul 13 17:56:22 2025 -0400
build: add support for checkstyle / spotless to grails-core
---
buildSrc/build.gradle | 2 ++
.../config/checkstyle/checkstyle.xml | 10 ++++----
.../config/spotless/license.java | 0
gradle.properties | 2 ++
.../style-enforcement-config.gradle | 28 +++++++++++++---------
.../{config => etc}/checkstyle/suppressions.xml | 8 +++----
grails-forge/gradle.properties | 3 ---
.../gradle/style-enforcement-config.gradle | 8 +++----
8 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 993f2b8cfb..f22cb0e801 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -52,6 +52,8 @@ dependencies {
implementation 'io.github.gradle-nexus:publish-plugin'
implementation 'org.apache.grails:grails-docs-core'
implementation 'org.apache.grails:grails-gradle-plugins'
+ implementation "com.diffplug.spotless:spotless-plugin-gradle:${gradleProperties.spotlessVersion}"
+ implementation "io.spring.nohttp:nohttp-gradle:${gradleProperties.nohttpGradleVersion}"
implementation 'org.asciidoctor:asciidoctor-gradle-jvm'
implementation 'org.springframework.boot:spring-boot-gradle-plugin'
implementation 'org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin:0.8.1'
diff --git a/grails-forge/config/checkstyle/checkstyle.xml b/etc/config/checkstyle/checkstyle.xml
similarity index 96%
rename from grails-forge/config/checkstyle/checkstyle.xml
rename to etc/config/checkstyle/checkstyle.xml
index 3e2e1ab9c3..128659ad6c 100644
--- a/grails-forge/config/checkstyle/checkstyle.xml
+++ b/etc/config/checkstyle/checkstyle.xml
@@ -97,10 +97,10 @@
<module name="SuppressWarningsFilter"/>
<!-- See http://checkstyle.sourceforge.net/config_filters.html#SuppressionFilter -->
- <module name="SuppressionFilter">
- <property name="file" value="${config_loc}/suppressions.xml"/>
- <property name="optional" value="false"/>
- </module>
+<!-- <module name="SuppressionFilter">-->
+<!-- <property name="file" value="${config_loc}/suppressions.xml"/>-->
+<!-- <property name="optional" value="false"/>-->
+<!-- </module>-->
<module name="TreeWalker">
@@ -114,6 +114,8 @@
<property name="allowMissingReturnTag" value="true"/>
</module>
<module name="JavadocType">
+ <!-- https://github.com/checkstyle/checkstyle/issues/14581 -->
+ <property name="allowMissingParamTags" value="true"/>
</module>
<module name="JavadocStyle">
diff --git a/grails-forge/config/spotless.license.java b/etc/config/spotless/license.java
similarity index 100%
rename from grails-forge/config/spotless.license.java
rename to etc/config/spotless/license.java
diff --git a/gradle.properties b/gradle.properties
index 84a4d121d3..f5e33cd3d1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -40,6 +40,8 @@ yakworksHibernateGroovyProxyVersion=1.1
picocliVersion=4.7.6
liquibaseHibernate5Version=4.27.0
hibernate5Version=5.6.15.Final
+spotlessVersion=6.25.0
+nohttpGradleVersion=0.0.11
githubSlug=apache/grails-core
githubBranch=7.0.x
diff --git a/grails-forge/gradle/style-enforcement-config.gradle b/gradle/style-enforcement-config.gradle
similarity index 61%
copy from grails-forge/gradle/style-enforcement-config.gradle
copy to gradle/style-enforcement-config.gradle
index 374fec9ed8..e0a5d895a9 100644
--- a/grails-forge/gradle/style-enforcement-config.gradle
+++ b/gradle/style-enforcement-config.gradle
@@ -23,21 +23,21 @@ apply plugin: 'io.spring.nohttp' // enforce https everywhere
spotless {
java {
- licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java"))
+ licenseHeaderFile(rootProject.file("etc/config/spotless/license.java"))
target('src/main/java/**/*.java')
}
groovy {
- licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java"))
- target('src/main/groovy/**')
+ licenseHeaderFile(rootProject.file("etc/config/spotless/license.java"))
+ target('src/main/groovy/**.groovy', 'src/main/groovy/**.java')
}
format 'javaMisc', {
target('src/main/**/package-info.java', 'src/main/**/module-info.java')
- licenseHeaderFile(rootProject.file('config/spotless.license.java'), '\\/\\*\\*')
+ licenseHeaderFile(rootProject.file('etc/config/spotless/license.java'), '\\/\\*\\*')
}
}
checkstyle {
- configFile = project.rootProject.file('config/checkstyle/checkstyle.xml')
+ configFile = project.rootProject.file('etc/config/checkstyle/checkstyle.xml')
// Per submodule
maxErrors = 1
@@ -47,13 +47,19 @@ checkstyle {
}
nohttp {
- source.exclude('src/test/**', 'build/**', 'src/main/resources/assets/**', 'src/resources/main/pom.xml')
+ source.exclude('src/test/**', 'build/**')
}
-tasks.named('checkstyleTest').configure {
- it.enabled = false
+if (tasks.names.contains('checkstyleTest')) {
+ tasks.named('checkstyleTest').configure {
+ it.group = 'verification'
+ it.enabled = false
+ }
}
-tasks.named('checkstyleMain').configure {
- it.dependsOn('spotlessCheck')
-}
\ No newline at end of file
+if (tasks.names.contains('checkstyleMain')) {
+ tasks.named('checkstyleMain').configure {
+ it.group = 'verification'
+ it.dependsOn('spotlessCheck')
+ }
+}
diff --git a/grails-forge/config/checkstyle/suppressions.xml b/grails-forge/etc/checkstyle/suppressions.xml
similarity index 79%
rename from grails-forge/config/checkstyle/suppressions.xml
rename to grails-forge/etc/checkstyle/suppressions.xml
index c36038ae6b..8180818a31 100644
--- a/grails-forge/config/checkstyle/suppressions.xml
+++ b/grails-forge/etc/checkstyle/suppressions.xml
@@ -22,10 +22,8 @@
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://checkstyle.sourceforge.net/dtds/suppressions_1_1.dtd">
-
<suppressions>
- <suppress checks="FileLength"
- files="DefaultBeanContext.java|BeanDefinitionWriter.java|DefaultHttpClient.java"/>
- <suppress files="[\\/]generated-src[\\/]|RockerSubs.java" checks="[a-zA-Z0-9]*"/>
- <suppress checks="Nohttp" files="pom.xml" />
+<!-- <suppress checks="FileLength"-->
+<!-- files="DefaultBeanContext.java|BeanDefinitionWriter.java|DefaultHttpClient.java"/>-->
+<!-- <suppress files="[\\/]generated-src[\\/]|RockerSubs.java" checks="[a-zA-Z0-9]*"/>-->
</suppressions>
diff --git a/grails-forge/gradle.properties b/grails-forge/gradle.properties
index 80c5036d4a..6d39f14f15 100644
--- a/grails-forge/gradle.properties
+++ b/grails-forge/gradle.properties
@@ -43,8 +43,6 @@ micronautBuildVersion=1.1.5
micronautDocsVersion=2.0.0
micronautGradlePlugins=5.4.10
micronautVersion=3.10.4
-nexusPublishVersion=1.3.0
-nohttpGradleVersion=0.0.11
objenesisVersion=3.4
picocliVersion=4.7.5
postgresqlVersion=42.7.5
@@ -55,7 +53,6 @@ shadowVersion=8.3.6
slf4jVersion=2.0.17
snakeyamlVersion=2.4
spockVersion=2.1-groovy-3.0
-spotlessVersion=6.25.0
testRetryVersion=1.6.2
typesafeConfigVersion=1.4.3
diff --git a/grails-forge/gradle/style-enforcement-config.gradle b/grails-forge/gradle/style-enforcement-config.gradle
index 374fec9ed8..2ce5b39f0f 100644
--- a/grails-forge/gradle/style-enforcement-config.gradle
+++ b/grails-forge/gradle/style-enforcement-config.gradle
@@ -23,21 +23,21 @@ apply plugin: 'io.spring.nohttp' // enforce https everywhere
spotless {
java {
- licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java"))
+ licenseHeaderFile(rootProject.file("../etc/config/spotless/license.java"))
target('src/main/java/**/*.java')
}
groovy {
- licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java"))
+ licenseHeaderFile(rootProject.file("../etc/config/spotless/license.java"))
target('src/main/groovy/**')
}
format 'javaMisc', {
target('src/main/**/package-info.java', 'src/main/**/module-info.java')
- licenseHeaderFile(rootProject.file('config/spotless.license.java'), '\\/\\*\\*')
+ licenseHeaderFile(rootProject.file('../etc/config/spotless/license.java'), '\\/\\*\\*')
}
}
checkstyle {
- configFile = project.rootProject.file('config/checkstyle/checkstyle.xml')
+ configFile = project.rootProject.file('etc/config/checkstyle/checkstyle.xml')
// Per submodule
maxErrors = 1