gradlegroovygrails

Apache Grails 7.0.0-M4 dependency on Groovy 4.0.27 and why Groovy 4.0.26 is shown in my dependecies tree


I'm moving my team's project from Grails 7.0.0-M1 to 7.0.0-M4 and it kinda works, but I'm new to Grails/Groovy/Gradle/... and curious so I run ./gradlew dependencies | less and notices a blockk like this:

  17   │ compileClasspath - Compile classpath for source set 'main'.
  18   │ +--- org.apache.grails:grails-bom:7.0.0-M4
  19   │ |    +--- org.springframework.boot:spring-boot-dependencies:3.5.0
...
 211   │ |    +--- org.apache.grails.common:grails-common:7.0.0-M4
 212   │ |    |    +--- org.apache.groovy:groovy -> 4.0.26 (*)
 213   │ |    |    +--- org.slf4j:slf4j-api -> 2.0.17
 214   │ |    |    \--- org.slf4j:jcl-over-slf4j -> 2.0.17
 215   │ |    |         \--- org.slf4j:slf4j-api:2.0.17

If I understand correctly line 212 means groovy was inferred to be 4.0.26. Why? Again if I understand correctly, it is a direct dependency of grails-common so I was expecting 4.0.27.


Solution

  • It's Spring Boot that overrides the Groovy version.

    Set groovy.version=4.0.27 in gradle.properties to override it.