1+ /*
2+ * Licensed to the Apache Software Foundation (ASF) under one
3+ * or more contributor license agreements. See the NOTICE file
4+ * distributed with this work for additional information
5+ * regarding copyright ownership. The ASF licenses this file
6+ * to you under the Apache License, Version 2.0 (the
7+ * "License"); you may not use this file except in compliance
8+ * with the License. You may obtain a copy of the License at
9+ *
10+ * https://www.apache.org/licenses/LICENSE-2.0
11+ *
12+ * Unless required by applicable law or agreed to in writing,
13+ * software distributed under the License is distributed on an
14+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+ * KIND, either express or implied. See the License for the
16+ * specific language governing permissions and limitations
17+ * under the License.
18+ */
19+
20+ plugins {
21+ id ' groovy'
22+ id ' java-library'
23+ id ' maven-publish'
24+ }
25+
26+ version = ' 0.0.1'
27+ group = ' org.apache.grails'
28+
29+ configurations {
30+ // Required to keep Gradle classes off the test compile classpath.
31+ gradleConf. extendsFrom compileClasspath
32+ }
33+
34+ apply {
35+ from project. layout. projectDirectory. file(' ../../dependencies.gradle' )
36+ }
37+
38+ dependencies {
39+ gradleConf gradleApi()
40+
41+ // grails-docs classes are used in Gradle builds,
42+ // so we must compile with Groovy 3 until Gradle upgrades to Groovy 4.
43+ compileOnly " org.codehaus.groovy:groovy:${ GroovySystem.version} "
44+ compileOnly " org.codehaus.groovy:groovy-ant:${ GroovySystem.version} "
45+
46+ api " org.apache.commons:commons-text:${ gradleBomDependencyVersions['commons-text.version']} "
47+ api " org.apache.ant:ant:${ gradleBomDependencyVersions['ant.version']} "
48+ api ' org.grails:grails-gdoc-engine:1.0.1'
49+ api ' org.yaml:snakeyaml:2.4'
50+
51+ api " org.asciidoctor:asciidoctorj:${ gradleBomDependencyVersions['asciidoctorj.version']} "
52+ implementation " org.springframework.boot:spring-boot-gradle-plugin:${ gradleBomDependencyVersions['spring-boot.version']} "
53+
54+ testImplementation platform(" org.spockframework:spock-bom:${ gradleBomDependencyVersions['gradle-spock.version']} " )
55+ testImplementation(' org.spockframework:spock-core' ) {
56+ transitive = false
57+ }
58+
59+ testImplementation " org.codehaus.groovy:groovy-test-junit5:${ GroovySystem.version} "
60+ testImplementation ' org.junit.jupiter:junit-jupiter-api:5.12.2'
61+ testImplementation ' org.junit.platform:junit-platform-runner:1.12.2'
62+ testRuntimeOnly ' org.junit.platform:junit-platform-launcher:1.12.2'
63+ testRuntimeOnly ' org.junit.jupiter:junit-jupiter-engine:5.12.2'
64+ }
65+
66+ sourceSets {
67+ main {
68+ compileClasspath = configurations. gradleConf
69+ }
70+ }
71+
72+ def docFilesJar = tasks. register(' docFilesJar' , Jar )
73+ docFilesJar. configure {Jar it ->
74+ it. description = ' Package up files used for generating documentation.'
75+ it. archiveVersion = null
76+ it. archiveFileName = ' grails-doc-files.jar'
77+ it. from ' src/main/template'
78+ }
79+
80+ tasks. named(' jar' , Jar ). configure { Jar it ->
81+ it. from docFilesJar
82+ }
83+
84+ jar. dependsOn docFilesJar
85+
86+ def java17moduleReflectionCompatibilityArguments = [
87+ ' --add-opens=java.base/java.lang=ALL-UNNAMED' ,
88+ ' --add-opens=java.base/java.util=ALL-UNNAMED'
89+ ]
90+ tasks. withType(Test ). configureEach {
91+ onlyIf {
92+ ! [
93+ ' onlyFunctionalTests' ,
94+ ' onlyHibernate5Tests' ,
95+ ' onlyMongodbTests' ,
96+ ' skipCoreTests' ,
97+ ' skipTests'
98+ ]. find {
99+ project. hasProperty(it)
100+ }
101+ }
102+
103+ useJUnitPlatform()
104+ jvmArgs + = java17moduleReflectionCompatibilityArguments
105+ develocity {
106+ testRetry {
107+ maxRetries = 2
108+ maxFailures = 20
109+ failOnPassedAfterRetry = true
110+ }
111+ }
112+ testLogging {
113+ events(' passed' , ' skipped' , ' failed' )
114+ showExceptions = true
115+ exceptionFormat = ' full'
116+ showCauses = true
117+ showStackTraces = true
118+ }
119+ excludes = [' **/*TestCase.class' , ' **/*$*.class' ]
120+ maxParallelForks = 1
121+ maxHeapSize = ' 1024m'
122+ }
0 commit comments