diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml
new file mode 100644
index 00000000000..92753051cdb
--- /dev/null
+++ b/.github/workflows/codestyle.yml
@@ -0,0 +1,111 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: "Code Style"
+on:
+ push:
+ branches:
+ - '[0-9]+.[0-9]+.x'
+ pull_request:
+ workflow_dispatch:
+# queue jobs and only allow 1 run per branch due to the likelihood of hitting GitHub resource limits
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: false
+jobs:
+ check_core_projects:
+ name: "Core Projects"
+ runs-on: ubuntu-24.04
+ steps:
+ - name: "🌐 Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
+ run: curl -s https://api.ipify.org
+ - name: "📥 Checkout repository"
+ uses: actions/checkout@v4
+ - name: "☕️ Setup JDK"
+ uses: actions/setup-java@v4
+ with:
+ distribution: liberica
+ java-version: 17
+ - name: "🐘 Setup Gradle"
+ uses: gradle/actions/setup-gradle@v4
+ with:
+ develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
+ - name: "🔎 Check Core Projects"
+ run: ./gradlew codeStyle
+ - name: "📤 Upload Failure Reports"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: core-reports
+ path: |
+ **/build/reports/checkstyle/
+ **/build/reports/codenarc/
+ check_gradle_plugin_projects:
+ name: "Gradle Plugin Projects"
+ runs-on: ubuntu-24.04
+ steps:
+ - name: "🌐 Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
+ run: curl -s https://api.ipify.org
+ - name: "📥 Checkout repository"
+ uses: actions/checkout@v4
+ - name: "☕️ Setup JDK"
+ uses: actions/setup-java@v4
+ with:
+ distribution: liberica
+ java-version: 17
+ - name: "🐘 Setup Gradle"
+ uses: gradle/actions/setup-gradle@v4
+ with:
+ develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
+ - name: "🔎 Check Gradle Plugin Projects"
+ working-directory: grails-gradle
+ run: ./gradlew codeStyle
+ - name: "📤 Upload Failure Reports"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: gradle-plugin-reports
+ path: |
+ grails-gradle/**/build/reports/checkstyle/
+ grails-gradle/**/build/reports/codenarc/
+ check_grails_forge_projects:
+ name: "Forge Projects"
+ runs-on: ubuntu-24.04
+ steps:
+ - name: "🌐 Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
+ run: curl -s https://api.ipify.org
+ - name: "📥 Checkout repository"
+ uses: actions/checkout@v4
+ - name: "☕️ Setup JDK"
+ uses: actions/setup-java@v4
+ with:
+ distribution: liberica
+ java-version: 17
+ - name: "🐘 Setup Gradle"
+ uses: gradle/actions/setup-gradle@v4
+ with:
+ develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
+ - name: "🔎 Check Forge Projects"
+ working-directory: grails-forge
+ run: ./gradlew codeStyle
+ - name: "📤 Upload Failure Reports"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: forge-reports
+ path: |
+ grails-forge/**/build/reports/checkstyle/
+ grails-forge/**/build/reports/checkstyleNohttp/
+ grails-forge/**/build/reports/codenarc/
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index 71e68af8057..1585dbd990a 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -51,14 +51,19 @@ jobs:
working-directory: 'grails-gradle'
run: >
./gradlew build
- --continue --stacktrace -PskipTests
+ --continue
+ --stacktrace
+ -PskipCodeStyle
+ -PskipTests
- name: "🔨 Build project with tests"
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
working-directory: 'grails-gradle'
run: >
./gradlew build
- --continue --stacktrace
+ --continue
+ --stacktrace
--rerun-tasks
+ -PskipCodeStyle
build:
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
name: 'Build Grails-Core'
@@ -85,8 +90,11 @@ jobs:
- name: "🔨 Build project"
run: >
./gradlew build :grails-shell-cli:installDist groovydoc
- --continue --stacktrace -PonlyCoreTests
+ --continue
--rerun-tasks
+ --stacktrace
+ -PonlyCoreTests
+ -PskipCodeStyle
buildForge:
name: "Build Grails Forge"
strategy:
@@ -113,14 +121,19 @@ jobs:
working-directory: 'grails-forge'
run: >
./gradlew build
- --continue --stacktrace -PskipTests
+ --continue
+ --stacktrace
+ -PskipCodeStyle
+ -PskipTests
- name: "🔨 Build project with tests"
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
working-directory: 'grails-forge'
run: >
./gradlew build
- --continue --stacktrace
+ --continue
--rerun-tasks
+ --stacktrace
+ -PskipCodeStyle
- name: "✅ Verify combined CLI"
run: |
cd grails-forge
@@ -162,11 +175,13 @@ jobs:
- name: "🏃 Run Functional Tests"
run: >
./gradlew bootJar check
- --continue --stacktrace
+ --continue
+ --rerun-tasks
+ --stacktrace
-PonlyFunctionalTests
+ -PskipCodeStyle
-PskipHibernate5Tests
-PskipMongodbTests
- --rerun-tasks
mongodbFunctional:
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
name: "Mongodb Functional Tests"
@@ -195,10 +210,12 @@ jobs:
GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
run: >
./gradlew bootJar cleanTest check
- --continue --stacktrace
+ --continue
+ --rerun-tasks
+ --stacktrace
-PonlyMongodbTests
-PmongodbContainerVersion=${{ matrix.mongodb-version }}
- --rerun-tasks
+ -PskipCodeStyle
hibernate5Functional:
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
name: "Hibernate5 Functional Tests"
@@ -226,9 +243,11 @@ jobs:
GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
run: >
./gradlew bootJar cleanTest check
- --continue --stacktrace
- -PonlyHibernate5Tests
+ --continue
--rerun-tasks
+ --stacktrace
+ -PonlyHibernate5Tests
+ -PskipCodeStyle
publishGradle:
if: github.repository_owner == 'apache' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
needs: [ buildGradle ]
@@ -256,7 +275,8 @@ jobs:
working-directory: 'grails-gradle'
run: >
./gradlew publish aggregateChecksums aggregatePublishedArtifacts
- -Dorg.gradle.internal.publish.checksums.insecure=true --no-build-cache --rerun-tasks
+ --no-build-cache
+ --rerun-tasks
- name: "📤 Upload grails-gradle checksums"
uses: actions/upload-artifact@v4
with:
@@ -360,7 +380,8 @@ jobs:
working-directory: 'grails-forge'
run: >
./gradlew publish aggregateChecksums aggregatePublishedArtifacts
- -Dorg.gradle.internal.publish.checksums.insecure=true --no-build-cache --rerun-tasks
+ --no-build-cache
+ --rerun-tasks
- name: "📤 Upload grails-forge checksums"
uses: actions/upload-artifact@v4
with:
diff --git a/.github/workflows/groovy-joint-workflow.yml b/.github/workflows/groovy-joint-workflow.yml
index 8e320855dc2..cdaef7148bd 100644
--- a/.github/workflows/groovy-joint-workflow.yml
+++ b/.github/workflows/groovy-joint-workflow.yml
@@ -161,3 +161,4 @@ jobs:
run: >
./gradlew build
-x groovydoc
+ -PskipCodeStyle
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 502f79f769e..cba8dac2b92 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -239,7 +239,8 @@ changes.
## Code Style
-Grails code style mostly mirrors the Spring Framework's [Style Guide](https://github.com/spring-projects/spring-framework/blob/main/CONTRIBUTING.md#source-code-style). We are currently working on a more detailed proposal under ticket [#13754](https://github.com/apache/grails-core/issues/13754).
+Grails has a limited set of code styles enforced by Checkstyle (for Java) and CodeNarc (for Groovy).
+To check compliance with the code styles, run the `codeStyle` Gradle task.
### Commit Messages
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index fbb39ca2a87..9399c7eabae 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -14,17 +14,34 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-# Various properties that control which & how tests run
-* onlyFunctionalTests - runs only grails-test-examples/* tests
-* onlyHibernate5Tests - runs only a hibernate5 related test
-* onlyMongodbTests - runs only a mongodb related test
-* onlyCoreTests - runs tests that do not include mongo, hibernate, or functional
-* skipFunctionalTests - does not run the functional tests
-* skipHibernate5Tests - does not run hibernate5 related tests
-* skipMongodbTests - does not run mongo related tests
-* skipCoreTests - does not run the "core" tests
-* serializeMongoTests - if true, only integration tests from one mongo project will run at a time
-* skipTests - no tests will run
-
-# Start a mongo docker container (containers will start by default)
+# Development
+
+## Useful Custom Gradle tasks
+
+These tasks can be run like so:
+
+`./gradlew publishGuide`
+
+* `codeStyle` - runs all code style checks
+* `publishGuide` - generates the user guide in the `grails-doc/build/original-guide`
+
+## Various properties that control which tasks to run
+
+These can be set on the command line like so:
+
+`./gradlew check -PskipCodeStyle`
+
+* `onlyCoreTests` - runs tests that do not include mongo, hibernate, or functional
+* `onlyFunctionalTests` - runs only grails-test-examples/* tests
+* `onlyHibernate5Tests` - runs only a hibernate5 related test
+* `onlyMongodbTests` - runs only a mongodb related test
+* `serializeMongoTests` - if true, only integration tests from one mongo project will run at a time
+* `skipCodeStyle` - does not run code style checks
+* `skipCoreTests` - does not run the "core" tests
+* `skipFunctionalTests` - does not run the functional tests
+* `skipHibernate5Tests` - does not run hibernate5 related tests
+* `skipMongodbTests` - does not run mongo related tests
+* `skipTests` - no tests will run
+
+## Start a mongo docker container (containers will start by default)
`docker run -d --name mongo-on-docker -p 27017:27017 mongo`
\ No newline at end of file
diff --git a/etc/config/checkstyle/checkstyle-suppressions.xml b/etc/config/checkstyle/checkstyle-suppressions.xml
new file mode 100644
index 00000000000..58ee65cc408
--- /dev/null
+++ b/etc/config/checkstyle/checkstyle-suppressions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/etc/config/checkstyle/checkstyle.xml b/etc/config/checkstyle/checkstyle.xml
new file mode 100644
index 00000000000..e6034dc6c77
--- /dev/null
+++ b/etc/config/checkstyle/checkstyle.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/etc/config/codenarc/codenarc.groovy b/etc/config/codenarc/codenarc.groovy
new file mode 100644
index 00000000000..80880ac32d5
--- /dev/null
+++ b/etc/config/codenarc/codenarc.groovy
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ruleset {
+
+ description 'A Codenarc ruleset for the Grails codebase'
+
+ BracesForClass
+ ClassStartsWithBlankLine {
+ ignoreInnerClasses = true
+ }
+ ClosureStatementOnOpeningLineOfMultipleLineClosure
+ ConsecutiveBlankLines
+ FileEndsWithoutNewline
+ NoTabCharacter
+ DuplicateImport
+ ImportFromSamePackage
+ Indentation
+ MisorderedStaticImports {
+ comesBefore = false // static imports should come last
+ }
+ MissingBlankLineAfterImports
+ MissingBlankLineAfterPackage
+ MissingBlankLineBeforeAnnotatedField
+ NoWildcardImports
+ SpaceAfterCatch
+ SpaceAfterClosingBrace
+ SpaceAfterComma
+ SpaceAfterFor
+ SpaceAfterIf
+ SpaceAfterMethodCallName
+ SpaceAfterMethodDeclarationName
+ SpaceAfterNotOperator
+ SpaceAfterOpeningBrace {
+ ignoreEmptyBlock = true
+ }
+ SpaceAfterSemicolon
+ SpaceAfterSwitch
+ SpaceAfterWhile
+ SpaceAroundClosureArrow
+ SpaceAroundMapEntryColon {
+ characterAfterColonRegex = ' '
+ }
+ SpaceAroundOperator {
+ ignoreParameterDefaultValueAssignments = false
+ }
+ SpaceBeforeClosingBrace {
+ ignoreEmptyBlock = true
+ }
+ SpaceBeforeOpeningBrace
+ SpaceInsideParentheses
+ UnnecessaryConstructor
+ UnnecessaryDotClass
+ UnnecessaryGroovyImport
+ UnnecessaryGString
+ UnnecessaryOverridingMethod
+ UnnecessaryPublicModifier
+ UnnecessarySafeNavigationOperator
+ UnnecessarySemicolon
+ UnusedImport
+}
diff --git a/gradle.properties b/gradle.properties
index bcc76335250..5f4e60bd819 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -55,6 +55,10 @@ jbossTransactionApiVersion=2.0.0.Final
micronautVersion=4.9.10
micronautSerdeJacksonVersion=2.15.1
+# build dependencies for code quality checks
+checkstyleVersion=11.0.0
+codenarcVersion=3.6.0-groovy-4.0
+
# This prevents the Grails Gradle Plugin from unnecessarily excluding slf4j-simple in the generated POMs
# https://github.com/apache/grails-gradle-plugin/issues/222
slf4jPreventExclusion=true
diff --git a/gradle/code-style-config.gradle b/gradle/code-style-config.gradle
new file mode 100644
index 00000000000..9c3ad1f3c13
--- /dev/null
+++ b/gradle/code-style-config.gradle
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+apply plugin: 'checkstyle'
+apply plugin: 'codenarc'
+
+extensions.configure(CheckstyleExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configDirectory = rootProject.layout.projectDirectory.dir('etc/config/checkstyle').asFile
+ it.maxWarnings = 0
+ it.showViolations = true
+ it.ignoreFailures = false
+ it.toolVersion = checkstyleVersion
+}
+
+extensions.configure(CodeNarcExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configFile = rootProject.layout.projectDirectory.file('etc/config/codenarc/codenarc.groovy').asFile
+ it.toolVersion = codenarcVersion
+}
+
+// Do not run Code Style checks if the property 'skipCodeStyle' is defined
+tasks.withType(Checkstyle).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+tasks.withType(CodeNarc).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+
+tasks.register('codeStyle') {
+ group = 'verification'
+ description = 'Runs code style checks'
+ dependsOn(tasks.withType(Checkstyle))
+ dependsOn(tasks.withType(CodeNarc))
+}
+
+tasks.named('checkstyleTest') {
+ enabled = false // Do not check test sources at this time
+}
+
+tasks.named('codenarcTest') {
+ enabled = false // Do not check test sources at this time
+}
+
+gradle.taskGraph.whenReady {
+ if (tasks.findByName('codenarcIntegrationTest')) {
+ tasks.named('codenarcIntegrationTest') {
+ enabled = false // Do not check test sources at this time
+ }
+ }
+}
diff --git a/grails-async/core/build.gradle b/grails-async/core/build.gradle
index 6a4f2b96791..a9f35631a1e 100644
--- a/grails-async/core/build.gradle
+++ b/grails-async/core/build.gradle
@@ -47,6 +47,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/gpars/build.gradle b/grails-async/gpars/build.gradle
index ab599f3da30..daeb08a9222 100644
--- a/grails-async/gpars/build.gradle
+++ b/grails-async/gpars/build.gradle
@@ -47,6 +47,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/plugin/build.gradle b/grails-async/plugin/build.gradle
index f8ff94c033a..f4078b32cfe 100644
--- a/grails-async/plugin/build.gradle
+++ b/grails-async/plugin/build.gradle
@@ -57,6 +57,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava/build.gradle b/grails-async/rxjava/build.gradle
index b15111a3952..00a583c67fb 100644
--- a/grails-async/rxjava/build.gradle
+++ b/grails-async/rxjava/build.gradle
@@ -43,6 +43,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava2/build.gradle b/grails-async/rxjava2/build.gradle
index 41732df8d9b..9f1cff3f12a 100644
--- a/grails-async/rxjava2/build.gradle
+++ b/grails-async/rxjava2/build.gradle
@@ -43,6 +43,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava3/build.gradle b/grails-async/rxjava3/build.gradle
index 3c62cff0dd9..2cd8942622e 100644
--- a/grails-async/rxjava3/build.gradle
+++ b/grails-async/rxjava3/build.gradle
@@ -43,6 +43,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-bootstrap/build.gradle b/grails-bootstrap/build.gradle
index b42df191c80..15017ca16b2 100644
--- a/grails-bootstrap/build.gradle
+++ b/grails-bootstrap/build.gradle
@@ -81,6 +81,7 @@ processResources {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-cache/build.gradle b/grails-cache/build.gradle
index 2575e34f182..89e5a3e35e3 100644
--- a/grails-cache/build.gradle
+++ b/grails-cache/build.gradle
@@ -60,6 +60,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-codecs-core/build.gradle b/grails-codecs-core/build.gradle
index 4fa52b2bb49..662060b41dd 100644
--- a/grails-codecs-core/build.gradle
+++ b/grails-codecs-core/build.gradle
@@ -54,6 +54,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-codecs/build.gradle b/grails-codecs/build.gradle
index a109b376add..26eab116b06 100644
--- a/grails-codecs/build.gradle
+++ b/grails-codecs/build.gradle
@@ -64,6 +64,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-common/build.gradle b/grails-common/build.gradle
index 4fea00e449b..e30f95621aa 100644
--- a/grails-common/build.gradle
+++ b/grails-common/build.gradle
@@ -55,6 +55,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-console/build.gradle b/grails-console/build.gradle
index e2d0cc792da..a83ac41a461 100644
--- a/grails-console/build.gradle
+++ b/grails-console/build.gradle
@@ -67,6 +67,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-controllers/build.gradle b/grails-controllers/build.gradle
index 457a8f9748b..3d88b08a4ef 100644
--- a/grails-controllers/build.gradle
+++ b/grails-controllers/build.gradle
@@ -74,6 +74,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-converters/build.gradle b/grails-converters/build.gradle
index c9a0d65d310..182b6d6ed7f 100644
--- a/grails-converters/build.gradle
+++ b/grails-converters/build.gradle
@@ -73,6 +73,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-core/build.gradle b/grails-core/build.gradle
index e1d525c1790..79a030fc6e1 100644
--- a/grails-core/build.gradle
+++ b/grails-core/build.gradle
@@ -92,6 +92,7 @@ tasks.named('processResources', ProcessResources).configure { ProcessResources i
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-data-hibernate5/boot-plugin/build.gradle b/grails-data-hibernate5/boot-plugin/build.gradle
index 5a054dca254..52e6497737d 100644
--- a/grails-data-hibernate5/boot-plugin/build.gradle
+++ b/grails-data-hibernate5/boot-plugin/build.gradle
@@ -59,6 +59,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/hibernate5-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-hibernate5/core/build.gradle b/grails-data-hibernate5/core/build.gradle
index 33fb9277d4c..db4d955201b 100644
--- a/grails-data-hibernate5/core/build.gradle
+++ b/grails-data-hibernate5/core/build.gradle
@@ -89,6 +89,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/hibernate5-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/grails-data-tck-config.gradle')
diff --git a/grails-data-hibernate5/dbmigration/build.gradle b/grails-data-hibernate5/dbmigration/build.gradle
index 9fd197a1fd0..790cc41c23a 100644
--- a/grails-data-hibernate5/dbmigration/build.gradle
+++ b/grails-data-hibernate5/dbmigration/build.gradle
@@ -106,6 +106,7 @@ tasks.withType(Test).configureEach {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/hibernate5-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-hibernate5/grails-plugin/build.gradle b/grails-data-hibernate5/grails-plugin/build.gradle
index d9a30d22ae2..892d01db72f 100644
--- a/grails-data-hibernate5/grails-plugin/build.gradle
+++ b/grails-data-hibernate5/grails-plugin/build.gradle
@@ -85,6 +85,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/hibernate5-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-mongodb/boot-plugin/build.gradle b/grails-data-mongodb/boot-plugin/build.gradle
index 11b97e45c48..84074347a87 100644
--- a/grails-data-mongodb/boot-plugin/build.gradle
+++ b/grails-data-mongodb/boot-plugin/build.gradle
@@ -104,6 +104,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-mongodb/bson/build.gradle b/grails-data-mongodb/bson/build.gradle
index 646d1fe3186..dda142f5671 100644
--- a/grails-data-mongodb/bson/build.gradle
+++ b/grails-data-mongodb/bson/build.gradle
@@ -98,6 +98,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-mongodb/core/build.gradle b/grails-data-mongodb/core/build.gradle
index f7ac7978c80..6c89d156661 100644
--- a/grails-data-mongodb/core/build.gradle
+++ b/grails-data-mongodb/core/build.gradle
@@ -151,6 +151,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-forked-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/grails-data-tck-config.gradle')
diff --git a/grails-data-mongodb/ext/build.gradle b/grails-data-mongodb/ext/build.gradle
index 86bcaa1539a..e9ba4cd7626 100644
--- a/grails-data-mongodb/ext/build.gradle
+++ b/grails-data-mongodb/ext/build.gradle
@@ -87,6 +87,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-mongodb/grails-plugin/build.gradle b/grails-data-mongodb/grails-plugin/build.gradle
index db68de1d369..4d633438027 100644
--- a/grails-data-mongodb/grails-plugin/build.gradle
+++ b/grails-data-mongodb/grails-plugin/build.gradle
@@ -129,6 +129,7 @@ tasks.named('groovydoc') {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-mongodb/gson-templates/build.gradle b/grails-data-mongodb/gson-templates/build.gradle
index f276cd8ca40..d821432f531 100644
--- a/grails-data-mongodb/gson-templates/build.gradle
+++ b/grails-data-mongodb/gson-templates/build.gradle
@@ -69,6 +69,7 @@ tasks.named('classes').configure {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-data-simple/build.gradle b/grails-data-simple/build.gradle
index a603bcff0f6..df43a6fef72 100644
--- a/grails-data-simple/build.gradle
+++ b/grails-data-simple/build.gradle
@@ -93,6 +93,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-databinding-core/build.gradle b/grails-databinding-core/build.gradle
index 4efb0bfcfb7..28a0551fbb3 100644
--- a/grails-databinding-core/build.gradle
+++ b/grails-databinding-core/build.gradle
@@ -57,6 +57,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-databinding/build.gradle b/grails-databinding/build.gradle
index 49e1646bf26..6261cef74a6 100644
--- a/grails-databinding/build.gradle
+++ b/grails-databinding/build.gradle
@@ -70,6 +70,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-datamapping-async/build.gradle b/grails-datamapping-async/build.gradle
index 81458a5169e..9e707b50bbb 100644
--- a/grails-datamapping-async/build.gradle
+++ b/grails-datamapping-async/build.gradle
@@ -74,6 +74,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datamapping-core/build.gradle b/grails-datamapping-core/build.gradle
index 52ef07e4b8c..8295b2e69e6 100644
--- a/grails-datamapping-core/build.gradle
+++ b/grails-datamapping-core/build.gradle
@@ -118,6 +118,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datamapping-rx/build.gradle b/grails-datamapping-rx/build.gradle
index 12ec2fef9f3..fcaf4b5b6d9 100644
--- a/grails-datamapping-rx/build.gradle
+++ b/grails-datamapping-rx/build.gradle
@@ -64,6 +64,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datamapping-support/build.gradle b/grails-datamapping-support/build.gradle
index 01c740d8a22..b4cec37d891 100644
--- a/grails-datamapping-support/build.gradle
+++ b/grails-datamapping-support/build.gradle
@@ -119,6 +119,7 @@ tasks.withType(Jar).configureEach {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datamapping-tck/build.gradle b/grails-datamapping-tck/build.gradle
index e89fc3067d8..b6ace68d757 100644
--- a/grails-datamapping-tck/build.gradle
+++ b/grails-datamapping-tck/build.gradle
@@ -114,6 +114,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
// do NOT do test configuration here, this is a TCK module
diff --git a/grails-datamapping-validation/build.gradle b/grails-datamapping-validation/build.gradle
index 544cf7dc745..cabf5e7304f 100644
--- a/grails-datamapping-validation/build.gradle
+++ b/grails-datamapping-validation/build.gradle
@@ -86,6 +86,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datasource/build.gradle b/grails-datasource/build.gradle
index c5fb199e6ac..969a788109d 100644
--- a/grails-datasource/build.gradle
+++ b/grails-datasource/build.gradle
@@ -71,6 +71,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-datastore-async/build.gradle b/grails-datastore-async/build.gradle
index 1b1838e4ae0..6ad2d35cb47 100644
--- a/grails-datastore-async/build.gradle
+++ b/grails-datastore-async/build.gradle
@@ -61,6 +61,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datastore-core/build.gradle b/grails-datastore-core/build.gradle
index 7a70a7915e8..87a2d913455 100644
--- a/grails-datastore-core/build.gradle
+++ b/grails-datastore-core/build.gradle
@@ -98,6 +98,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-datastore-web/build.gradle b/grails-datastore-web/build.gradle
index a177a1fb389..995de819b8a 100644
--- a/grails-datastore-web/build.gradle
+++ b/grails-datastore-web/build.gradle
@@ -88,6 +88,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-domain-class/build.gradle b/grails-domain-class/build.gradle
index c53f0d33ddb..a329240c962 100644
--- a/grails-domain-class/build.gradle
+++ b/grails-domain-class/build.gradle
@@ -74,6 +74,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-encoder/build.gradle b/grails-encoder/build.gradle
index 73504efd32d..90ad28fbcc4 100644
--- a/grails-encoder/build.gradle
+++ b/grails-encoder/build.gradle
@@ -58,6 +58,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/compat/build.gradle b/grails-events/compat/build.gradle
index 892c32cd608..d9385c97dcd 100644
--- a/grails-events/compat/build.gradle
+++ b/grails-events/compat/build.gradle
@@ -38,6 +38,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-events/core/build.gradle b/grails-events/core/build.gradle
index 38d91983584..6e72243d77f 100644
--- a/grails-events/core/build.gradle
+++ b/grails-events/core/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/gpars/build.gradle b/grails-events/gpars/build.gradle
index c94fee9aa65..6db7a2796be 100644
--- a/grails-events/gpars/build.gradle
+++ b/grails-events/gpars/build.gradle
@@ -45,6 +45,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/plugin/build.gradle b/grails-events/plugin/build.gradle
index 1530d737686..cdd78d8d50e 100644
--- a/grails-events/plugin/build.gradle
+++ b/grails-events/plugin/build.gradle
@@ -51,6 +51,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava/build.gradle b/grails-events/rxjava/build.gradle
index ebb69b7437e..f5421639f95 100644
--- a/grails-events/rxjava/build.gradle
+++ b/grails-events/rxjava/build.gradle
@@ -48,6 +48,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava2/build.gradle b/grails-events/rxjava2/build.gradle
index 0697285af6b..da07f0bad5b 100644
--- a/grails-events/rxjava2/build.gradle
+++ b/grails-events/rxjava2/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava3/build.gradle b/grails-events/rxjava3/build.gradle
index 040c9bb1629..836342bd77f 100644
--- a/grails-events/rxjava3/build.gradle
+++ b/grails-events/rxjava3/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/spring/build.gradle b/grails-events/spring/build.gradle
index abdba357213..94bcb756993 100644
--- a/grails-events/spring/build.gradle
+++ b/grails-events/spring/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/transforms/build.gradle b/grails-events/transforms/build.gradle
index 6a43d17adf3..8312249c118 100644
--- a/grails-events/transforms/build.gradle
+++ b/grails-events/transforms/build.gradle
@@ -61,6 +61,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-fields/build.gradle b/grails-fields/build.gradle
index 74b4fd64e52..98bd1f6af41 100644
--- a/grails-fields/build.gradle
+++ b/grails-fields/build.gradle
@@ -60,6 +60,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-forge/gradle/code-style-config.gradle b/grails-forge/gradle/code-style-config.gradle
new file mode 100644
index 00000000000..e4e6d994878
--- /dev/null
+++ b/grails-forge/gradle/code-style-config.gradle
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import com.diffplug.gradle.spotless.SpotlessExtension
+import io.spring.nohttp.gradle.NoHttpExtension
+
+apply plugin: 'checkstyle'
+apply plugin: 'codenarc'
+apply plugin: 'com.diffplug.spotless'
+apply plugin: 'io.spring.nohttp' // enforce https everywhere
+
+extensions.configure(SpotlessExtension) {
+ // Explicit `it` is required in extension configuration block
+ it.java {
+ target('src/main/java/**/*.java')
+ // Formatters:
+ licenseHeaderFile(rootProject.layout.projectDirectory.file('config/spotless.license.java'))
+ }
+ it.groovy {
+ target('src/main/groovy/**')
+ // Formatters:
+ licenseHeaderFile(rootProject.layout.projectDirectory.file('config/spotless.license.java'))
+ }
+ it.format('javaMisc') {
+ target(
+ 'src/main/**/module-info.java',
+ 'src/main/**/package-info.java',
+ )
+ // Formatters:
+ licenseHeaderFile(rootProject.layout.projectDirectory.file('config/spotless.license.java'), '\\/\\*\\*')
+ }
+}
+
+extensions.configure(CheckstyleExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configDirectory = rootProject.layout.projectDirectory.dir('config/checkstyle').asFile
+ it.toolVersion = checkstyleVersion
+}
+
+extensions.configure(CodeNarcExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configFile = rootProject.layout.projectDirectory.file('../etc/config/codenarc/codenarc.groovy').asFile
+ it.toolVersion = codenarcVersion
+}
+
+extensions.configure(NoHttpExtension) {
+ // Explicit `it` is required in extension configuration block
+ it.source.exclude(
+ 'build/**',
+ 'src/main/resources/assets/**',
+ 'src/main/resources/main/pom.xml',
+ 'src/test/**',
+ )
+}
+
+// Do not run Code Style checks if the property 'skipCodeStyle' is defined
+tasks.withType(Checkstyle).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+tasks.withType(CodeNarc).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+
+tasks.register('codeStyle') {
+ group = 'verification'
+ description = 'Runs code style checks'
+ dependsOn(tasks.withType(Checkstyle))
+ dependsOn(tasks.withType(CodeNarc))
+}
+
+tasks.named('checkstyleTest') {
+ enabled = false // Do not check test sources at this time
+}
+
+tasks.named('checkstyleMain') {
+ dependsOn('spotlessCheck')
+}
+
+gradle.taskGraph.whenReady {
+ if (tasks.findByName('codenarcTest')) {
+ tasks.named('codenarcTest') {
+ enabled = false // Do not check test sources at this time
+ }
+ }
+}
diff --git a/grails-forge/gradle/style-enforcement-config.gradle b/grails-forge/gradle/style-enforcement-config.gradle
deleted file mode 100644
index 374fec9ed83..00000000000
--- a/grails-forge/gradle/style-enforcement-config.gradle
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-apply plugin: 'checkstyle'
-apply plugin: 'com.diffplug.spotless'
-apply plugin: 'io.spring.nohttp' // enforce https everywhere
-
-spotless {
- java {
- licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java"))
- target('src/main/java/**/*.java')
- }
- groovy {
- licenseHeaderFile(rootProject.file("${rootDir}/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'), '\\/\\*\\*')
- }
-}
-
-checkstyle {
- configFile = project.rootProject.file('config/checkstyle/checkstyle.xml')
-
- // Per submodule
- maxErrors = 1
- maxWarnings = 10
-
- showViolations = true
-}
-
-nohttp {
- source.exclude('src/test/**', 'build/**', 'src/main/resources/assets/**', 'src/resources/main/pom.xml')
-}
-
-tasks.named('checkstyleTest').configure {
- it.enabled = false
-}
-
-tasks.named('checkstyleMain').configure {
- it.dependsOn('spotlessCheck')
-}
\ No newline at end of file
diff --git a/grails-forge/grails-cli/build.gradle b/grails-forge/grails-cli/build.gradle
index a48763bb719..59e79ba704d 100644
--- a/grails-forge/grails-cli/build.gradle
+++ b/grails-forge/grails-cli/build.gradle
@@ -77,6 +77,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
diff --git a/grails-forge/grails-cli/src/main/groovy/org/apache/grails/cli/DelegatingShellApplication.groovy b/grails-forge/grails-cli/src/main/groovy/org/apache/grails/cli/DelegatingShellApplication.groovy
index fbbf77b8ddb..44a40962ade 100644
--- a/grails-forge/grails-cli/src/main/groovy/org/apache/grails/cli/DelegatingShellApplication.groovy
+++ b/grails-forge/grails-cli/src/main/groovy/org/apache/grails/cli/DelegatingShellApplication.groovy
@@ -1,18 +1,20 @@
/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * https://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
package org.apache.grails.cli
@@ -25,6 +27,7 @@ import java.lang.reflect.Method
*/
@CompileStatic
class DelegatingShellApplication {
+
static void main(String[] args) {
// Ideally, we'd use pico cli to delegate between them and get autocomplete, but we can't easily do that because
// grails-forge-cli does not implement picocli compliant commands (they can't be nested because they're beans that micronaut expects to create)
@@ -53,17 +56,17 @@ class DelegatingShellApplication {
String preferredShell = System.getenv('GRAILS_PREFERRED_SHELL')?.trim()?.toLowerCase() ?: 'shell'
validateShellType(preferredShell)
- if(!args) {
+ if (!args) {
return new Tuple2<>(preferredShell == 'forge', args)
}
List listArgs = args.toList()
String first = listArgs.first().trim().toLowerCase()
- if(first != '-t' && first != '--type') {
+ if (first != '-t' && first != '--type') {
return new Tuple2<>(preferredShell == 'forge', args)
}
- if(listArgs.size() == 1) {
+ if (listArgs.size() == 1) {
System.err.println("Missing argument for -t, --type; possible values are 'shell' or 'forge'")
System.exit(1)
}
diff --git a/grails-forge/grails-forge-analytics-postgres/build.gradle b/grails-forge/grails-forge-analytics-postgres/build.gradle
index 2209e3c813e..197893615f3 100644
--- a/grails-forge/grails-forge-analytics-postgres/build.gradle
+++ b/grails-forge/grails-forge-analytics-postgres/build.gradle
@@ -68,4 +68,6 @@ tasks.named('dockerBuildNative') {
tasks.named('dockerBuild') {
images = [findProperty('dockerImageName') ?: 'grailsforge']
-}
\ No newline at end of file
+}
+
+apply from: rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
diff --git a/grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Main.java b/grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Main.java
index 44dcdc382eb..4f800133c81 100644
--- a/grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Main.java
+++ b/grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Main.java
@@ -28,12 +28,17 @@
import io.netty.util.internal.PlatformDependent;
public class Main {
+
static {
byte[] bestMacAddr = new byte[8];
PlatformDependent.threadLocalRandom().nextBytes(bestMacAddr);
System.setProperty("io.netty.machineId", MacAddressUtil.formatAddress(bestMacAddr));
}
+ public static void main(String... args) {
+ Micronaut.run(args);
+ }
+
@ContextConfigurer
public static class DefaultEnvironmentConfigurer implements ApplicationContextConfigurer {
@Override
@@ -41,8 +46,4 @@ public void configure(@NonNull ApplicationContextBuilder builder) {
builder.defaultEnvironments(Environment.DEVELOPMENT);
}
}
-
- public static void main(String... args) {
- Micronaut.run(args);
- }
}
diff --git a/grails-forge/grails-forge-api/build.gradle b/grails-forge/grails-forge-api/build.gradle
index 1972acbb6ec..d15ac9b001c 100644
--- a/grails-forge/grails-forge-api/build.gradle
+++ b/grails-forge/grails-forge-api/build.gradle
@@ -75,9 +75,9 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/micronaut-openapi-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
- from rootProject.layout.projectDirectory.file('gradle/style-enforcement-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/doc-config.gradle')
}
diff --git a/grails-forge/grails-forge-cli/build.gradle b/grails-forge/grails-forge-cli/build.gradle
index 45c9785df2a..2422caec5a3 100644
--- a/grails-forge/grails-forge-cli/build.gradle
+++ b/grails-forge/grails-forge-cli/build.gradle
@@ -109,9 +109,9 @@ rocker {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
- from rootProject.layout.projectDirectory.file('gradle/style-enforcement-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/doc-config.gradle')
}
diff --git a/grails-forge/grails-forge-core/build.gradle b/grails-forge/grails-forge-core/build.gradle
index 39b6961cdaa..ef008f864d3 100644
--- a/grails-forge/grails-forge-core/build.gradle
+++ b/grails-forge/grails-forge-core/build.gradle
@@ -115,9 +115,9 @@ copyGrailsWrapper.configure { Sync it ->
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
- from rootProject.layout.projectDirectory.file('gradle/style-enforcement-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/doc-config.gradle')
}
diff --git a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradlePlugin.java b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradlePlugin.java
index ad35259bdc1..bd85c6ba142 100644
--- a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradlePlugin.java
+++ b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradlePlugin.java
@@ -179,7 +179,7 @@ public GradlePlugin.Builder id(@NonNull String id) {
}
@NonNull
- public GradlePlugin.Builder buildImports(String ...imports) {
+ public GradlePlugin.Builder buildImports(String... imports) {
this.buildImports.addAll(Arrays.asList(imports));
return this;
}
diff --git a/grails-forge/grails-forge-core/src/main/resources/pom.xml b/grails-forge/grails-forge-core/src/main/resources/pom.xml
index 1ac0022f724..b61095a28ec 100644
--- a/grails-forge/grails-forge-core/src/main/resources/pom.xml
+++ b/grails-forge/grails-forge-core/src/main/resources/pom.xml
@@ -9,7 +9,7 @@
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+ https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
diff --git a/grails-forge/grails-forge-web-netty/build.gradle b/grails-forge/grails-forge-web-netty/build.gradle
index 47f270e2ebd..3152efca271 100644
--- a/grails-forge/grails-forge-web-netty/build.gradle
+++ b/grails-forge/grails-forge-web-netty/build.gradle
@@ -67,4 +67,6 @@ tasks.named('dockerBuildNative') {
tasks.named('dockerBuild') {
images = [findProperty('dockerImageName') ?: 'grailsforge']
-}
\ No newline at end of file
+}
+
+apply from: rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
diff --git a/grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/Application.java b/grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/Application.java
index f6e4200db2e..1ebf60e3028 100644
--- a/grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/Application.java
+++ b/grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/Application.java
@@ -27,6 +27,10 @@
public class Application {
+ public static void main(String... args) {
+ Micronaut.run(args);
+ }
+
@ContextConfigurer
public static class DefaultEnvironmentConfigurer implements ApplicationContextConfigurer {
@Override
@@ -34,8 +38,4 @@ public void configure(@NonNull ApplicationContextBuilder builder) {
builder.defaultEnvironments(Environment.DEVELOPMENT);
}
}
-
- public static void main(String...args) {
- Micronaut.run(args);
- }
}
diff --git a/grails-forge/test-core/build.gradle b/grails-forge/test-core/build.gradle
index d37b4620db3..ccb1ef8fb99 100644
--- a/grails-forge/test-core/build.gradle
+++ b/grails-forge/test-core/build.gradle
@@ -71,5 +71,4 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
- from rootProject.layout.projectDirectory.file('gradle/style-enforcement-config.gradle')
}
\ No newline at end of file
diff --git a/grails-geb/build.gradle b/grails-geb/build.gradle
index 51758839afa..52428c07ddd 100644
--- a/grails-geb/build.gradle
+++ b/grails-geb/build.gradle
@@ -65,6 +65,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gradle/common/build.gradle b/grails-gradle/common/build.gradle
index ee2bb38dad2..b6cb6281e4e 100644
--- a/grails-gradle/common/build.gradle
+++ b/grails-gradle/common/build.gradle
@@ -50,6 +50,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gradle/common/src/main/groovy/org/apache/grails/gradle/common/PropertyFileUtils.groovy b/grails-gradle/common/src/main/groovy/org/apache/grails/gradle/common/PropertyFileUtils.groovy
index 1b58d9b667e..f4490a7cd6e 100644
--- a/grails-gradle/common/src/main/groovy/org/apache/grails/gradle/common/PropertyFileUtils.groovy
+++ b/grails-gradle/common/src/main/groovy/org/apache/grails/gradle/common/PropertyFileUtils.groovy
@@ -26,6 +26,7 @@ import org.codehaus.groovy.runtime.IOGroovyMethods
@CompileStatic
final class PropertyFileUtils {
+
private final static Pattern TIME_REGEX = ~'^#(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)(?:,|\\s).*$'
private PropertyFileUtils() {
diff --git a/grails-gradle/docs-core/build.gradle b/grails-gradle/docs-core/build.gradle
index 90de41f996e..92d81c72abd 100644
--- a/grails-gradle/docs-core/build.gradle
+++ b/grails-gradle/docs-core/build.gradle
@@ -87,6 +87,7 @@ jar.dependsOn docFilesJar
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
diff --git a/grails-gradle/gradle/code-style-config.gradle b/grails-gradle/gradle/code-style-config.gradle
new file mode 100644
index 00000000000..27dbef48d31
--- /dev/null
+++ b/grails-gradle/gradle/code-style-config.gradle
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+apply plugin: 'checkstyle'
+apply plugin: 'codenarc'
+
+extensions.configure(CheckstyleExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configDirectory = rootProject.layout.projectDirectory.dir('../etc/config/checkstyle').asFile
+ it.maxWarnings = 0
+ it.showViolations = true
+ it.ignoreFailures = false
+ it.toolVersion = checkstyleVersion
+}
+
+extensions.configure(CodeNarcExtension) {
+ // Explicit `it` is required in extension configuration
+ it.configFile = rootProject.layout.projectDirectory.file('../etc/config/codenarc/codenarc.groovy').asFile
+ it.toolVersion = codenarcVersion
+}
+
+// Do not run Code Style checks if the property 'skipCodeStyle' is defined
+tasks.withType(Checkstyle).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+tasks.withType(CodeNarc).configureEach {
+ group = 'verification'
+ onlyIf { !project.hasProperty('skipCodeStyle') }
+}
+
+tasks.register('codeStyle') {
+ group = 'verification'
+ description = 'Runs code style checks'
+ dependsOn(tasks.withType(Checkstyle))
+ dependsOn(tasks.withType(CodeNarc))
+}
+
+tasks.named('checkstyleTest') {
+ enabled = false // Do not check test sources at this time
+}
+
+tasks.named('codenarcTest') {
+ enabled = false // Do not check test sources at this time
+}
\ No newline at end of file
diff --git a/grails-gradle/model/build.gradle b/grails-gradle/model/build.gradle
index 3651770c234..5ee6d02e96f 100644
--- a/grails-gradle/model/build.gradle
+++ b/grails-gradle/model/build.gradle
@@ -76,6 +76,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
diff --git a/grails-gradle/plugins/build.gradle b/grails-gradle/plugins/build.gradle
index db070c9c796..d053d33740b 100644
--- a/grails-gradle/plugins/build.gradle
+++ b/grails-gradle/plugins/build.gradle
@@ -121,6 +121,7 @@ tasks.withType(Copy) {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
diff --git a/grails-gradle/tasks/build.gradle b/grails-gradle/tasks/build.gradle
index 61aaad572c4..8e20aeb902b 100644
--- a/grails-gradle/tasks/build.gradle
+++ b/grails-gradle/tasks/build.gradle
@@ -48,6 +48,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
diff --git a/grails-gsp/core/build.gradle b/grails-gsp/core/build.gradle
index 30362e0b1fd..07b4d5a5f15 100644
--- a/grails-gsp/core/build.gradle
+++ b/grails-gsp/core/build.gradle
@@ -90,6 +90,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-layout/build.gradle b/grails-gsp/grails-layout/build.gradle
index df50bddb78e..0b2442e94d9 100644
--- a/grails-gsp/grails-layout/build.gradle
+++ b/grails-gsp/grails-layout/build.gradle
@@ -61,6 +61,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-sitemesh3/build.gradle b/grails-gsp/grails-sitemesh3/build.gradle
index b78dc048c1a..5453a52427f 100644
--- a/grails-gsp/grails-sitemesh3/build.gradle
+++ b/grails-gsp/grails-sitemesh3/build.gradle
@@ -82,6 +82,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-taglib/build.gradle b/grails-gsp/grails-taglib/build.gradle
index fdb81e6d1cf..ca0d47a9aa5 100644
--- a/grails-gsp/grails-taglib/build.gradle
+++ b/grails-gsp/grails-taglib/build.gradle
@@ -81,6 +81,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-gsp-taglib/build.gradle b/grails-gsp/grails-web-gsp-taglib/build.gradle
index 6c2deb3629b..a566d7346bf 100644
--- a/grails-gsp/grails-web-gsp-taglib/build.gradle
+++ b/grails-gsp/grails-web-gsp-taglib/build.gradle
@@ -60,6 +60,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-gsp/build.gradle b/grails-gsp/grails-web-gsp/build.gradle
index ffc612da768..5fdf1575030 100644
--- a/grails-gsp/grails-web-gsp/build.gradle
+++ b/grails-gsp/grails-web-gsp/build.gradle
@@ -128,6 +128,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-jsp/build.gradle b/grails-gsp/grails-web-jsp/build.gradle
index 63dbc6b172b..d2ac2fcedfc 100644
--- a/grails-gsp/grails-web-jsp/build.gradle
+++ b/grails-gsp/grails-web-jsp/build.gradle
@@ -109,6 +109,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-taglib/build.gradle b/grails-gsp/grails-web-taglib/build.gradle
index ad099e75528..3e646f238ae 100644
--- a/grails-gsp/grails-web-taglib/build.gradle
+++ b/grails-gsp/grails-web-taglib/build.gradle
@@ -113,6 +113,7 @@ sourceSets {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/plugin/build.gradle b/grails-gsp/plugin/build.gradle
index 7963f65bd67..5b2320d89ed 100644
--- a/grails-gsp/plugin/build.gradle
+++ b/grails-gsp/plugin/build.gradle
@@ -181,6 +181,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-i18n/build.gradle b/grails-i18n/build.gradle
index a07554dfbbc..fae78864ec1 100644
--- a/grails-i18n/build.gradle
+++ b/grails-i18n/build.gradle
@@ -64,6 +64,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-interceptors/build.gradle b/grails-interceptors/build.gradle
index 9e74dd99d2e..178cc862cbc 100644
--- a/grails-interceptors/build.gradle
+++ b/grails-interceptors/build.gradle
@@ -63,6 +63,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-logging/build.gradle b/grails-logging/build.gradle
index 075f390df5b..beef4f22685 100644
--- a/grails-logging/build.gradle
+++ b/grails-logging/build.gradle
@@ -54,6 +54,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-mimetypes/build.gradle b/grails-mimetypes/build.gradle
index 127f78d775c..4fb2f63bec4 100644
--- a/grails-mimetypes/build.gradle
+++ b/grails-mimetypes/build.gradle
@@ -62,6 +62,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-rest-transforms/build.gradle b/grails-rest-transforms/build.gradle
index fa3402b68ce..40e93a75632 100644
--- a/grails-rest-transforms/build.gradle
+++ b/grails-rest-transforms/build.gradle
@@ -74,6 +74,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-scaffolding/build.gradle b/grails-scaffolding/build.gradle
index 91f90085426..c21a4e5c044 100644
--- a/grails-scaffolding/build.gradle
+++ b/grails-scaffolding/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-services/build.gradle b/grails-services/build.gradle
index 47b9df936c1..b4da45e80d8 100644
--- a/grails-services/build.gradle
+++ b/grails-services/build.gradle
@@ -65,6 +65,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-shell-cli/build.gradle b/grails-shell-cli/build.gradle
index 407e326c0c2..ee789751961 100644
--- a/grails-shell-cli/build.gradle
+++ b/grails-shell-cli/build.gradle
@@ -124,6 +124,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/OpenCommand.groovy b/grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/OpenCommand.groovy
index b5b7ee4700b..6ebb3f971de 100644
--- a/grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/OpenCommand.groovy
+++ b/grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/OpenCommand.groovy
@@ -19,8 +19,7 @@
package org.grails.cli.profile.commands
-import java.awt.*
-import java.util.List
+import java.awt.Desktop
import groovy.transform.CompileStatic
diff --git a/grails-spring/build.gradle b/grails-spring/build.gradle
index da9ddbfcf0e..ef54cccd23e 100644
--- a/grails-spring/build.gradle
+++ b/grails-spring/build.gradle
@@ -58,6 +58,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-test-core/build.gradle b/grails-test-core/build.gradle
index 14b625c5e31..d6985226174 100644
--- a/grails-test-core/build.gradle
+++ b/grails-test-core/build.gradle
@@ -85,6 +85,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-test-suite-base/build.gradle b/grails-test-suite-base/build.gradle
index e810fd5457a..41b68acd404 100644
--- a/grails-test-suite-base/build.gradle
+++ b/grails-test-suite-base/build.gradle
@@ -75,4 +75,5 @@ tasks.withType(Groovydoc).configureEach {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
}
diff --git a/grails-testing-support-core/build.gradle b/grails-testing-support-core/build.gradle
index e5089181875..4a816f0f60e 100644
--- a/grails-testing-support-core/build.gradle
+++ b/grails-testing-support-core/build.gradle
@@ -75,6 +75,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-testing-support-datamapping/build.gradle b/grails-testing-support-datamapping/build.gradle
index cd25137390c..eed573a2866 100755
--- a/grails-testing-support-datamapping/build.gradle
+++ b/grails-testing-support-datamapping/build.gradle
@@ -136,6 +136,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-testing-support-mongodb/build.gradle b/grails-testing-support-mongodb/build.gradle
index ef7c10c8f7e..7f480cebb22 100644
--- a/grails-testing-support-mongodb/build.gradle
+++ b/grails-testing-support-mongodb/build.gradle
@@ -44,6 +44,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-testing-support-views-gson/build.gradle b/grails-testing-support-views-gson/build.gradle
index 1b9b9e9feca..b8f42edf2e0 100644
--- a/grails-testing-support-views-gson/build.gradle
+++ b/grails-testing-support-views-gson/build.gradle
@@ -50,6 +50,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
diff --git a/grails-testing-support-web/build.gradle b/grails-testing-support-web/build.gradle
index 2f77702a85b..e5f8bc99381 100755
--- a/grails-testing-support-web/build.gradle
+++ b/grails-testing-support-web/build.gradle
@@ -50,6 +50,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-url-mappings/build.gradle b/grails-url-mappings/build.gradle
index 7b3f7144a80..2d917cee1f8 100644
--- a/grails-url-mappings/build.gradle
+++ b/grails-url-mappings/build.gradle
@@ -65,6 +65,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
}
\ No newline at end of file
diff --git a/grails-validation/build.gradle b/grails-validation/build.gradle
index d3a7c7f2f2d..26e5bb34347 100644
--- a/grails-validation/build.gradle
+++ b/grails-validation/build.gradle
@@ -63,6 +63,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-core/build.gradle b/grails-views-core/build.gradle
index b97851c866f..a54475a5f9b 100644
--- a/grails-views-core/build.gradle
+++ b/grails-views-core/build.gradle
@@ -53,6 +53,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-gson/build.gradle b/grails-views-gson/build.gradle
index 3347c259d14..c7fbbdcbe0c 100644
--- a/grails-views-gson/build.gradle
+++ b/grails-views-gson/build.gradle
@@ -65,6 +65,7 @@ tasks.named('sourcesJar', Jar).configure {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-markup/build.gradle b/grails-views-markup/build.gradle
index c74317e8a5f..4530280e2e6 100644
--- a/grails-views-markup/build.gradle
+++ b/grails-views-markup/build.gradle
@@ -54,6 +54,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-boot/build.gradle b/grails-web-boot/build.gradle
index c2fe2aaf837..adaa00d995c 100644
--- a/grails-web-boot/build.gradle
+++ b/grails-web-boot/build.gradle
@@ -68,6 +68,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-common/build.gradle b/grails-web-common/build.gradle
index 703eaac6ce3..189b9677a6a 100644
--- a/grails-web-common/build.gradle
+++ b/grails-web-common/build.gradle
@@ -78,6 +78,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-core/build.gradle b/grails-web-core/build.gradle
index 027588c5139..a434004036d 100644
--- a/grails-web-core/build.gradle
+++ b/grails-web-core/build.gradle
@@ -72,6 +72,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-databinding/build.gradle b/grails-web-databinding/build.gradle
index 1d6e8d4e7ff..73f47df1395 100644
--- a/grails-web-databinding/build.gradle
+++ b/grails-web-databinding/build.gradle
@@ -71,6 +71,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-mvc/build.gradle b/grails-web-mvc/build.gradle
index 6f9bad0ba5c..0f4923c7649 100644
--- a/grails-web-mvc/build.gradle
+++ b/grails-web-mvc/build.gradle
@@ -63,6 +63,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-url-mappings/build.gradle b/grails-web-url-mappings/build.gradle
index f9b3bf36ef1..7e67bdb7489 100644
--- a/grails-web-url-mappings/build.gradle
+++ b/grails-web-url-mappings/build.gradle
@@ -76,6 +76,7 @@ dependencies {
apply {
// java-configuration must be applied first since tasks are now lazy registered
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-wrapper/build.gradle b/grails-wrapper/build.gradle
index 62c4cf83ead..f7f32c2fe94 100644
--- a/grails-wrapper/build.gradle
+++ b/grails-wrapper/build.gradle
@@ -50,6 +50,7 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
+ from rootProject.layout.projectDirectory.file('gradle/code-style-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')