Skip to content

Commit 2966b3b

Browse files
committed
Exclude legacy JLine 2 pulled transitively by spring-boot-cli
Removing the JLine 2 pin exposed an even older jline:jline:2.11 that Spring Boot CLI drags in transitively, which the SBOM license gate rejects (BSD-4-Clause) and broke CI in :grails-shell-cli:cyclonedxDirectBom and the Forge :grails-cli SBOM. No source uses the old jline.* API, so exclude jline:jline from every spring-boot-cli declaration; only the JLine 3 (org.jline) stack remains on the classpath. Verified :grails-shell-cli:cyclonedxDirectBom and Forge :grails-cli:cyclonedxDirectBom generate clean SBOMs, and :grails-shell-cli:test / :grails-console:test pass. Assisted-by: claude-code:claude-4.8-opus
1 parent c01b016 commit 2966b3b

4 files changed

Lines changed: 12 additions & 4 deletions

File tree

grails-data-neo4j/boot-plugin/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
dependencies {
2121
compileOnly "org.springframework.boot:spring-boot-cli:$springBootVersion", {
2222
exclude group:'org.codehaus.groovy', module:'groovy'
23+
exclude group:'jline', module:'jline'
2324
}
2425

2526
api "org.springframework.boot:spring-boot-autoconfigure:$springBootVersion"
@@ -37,5 +38,6 @@ dependencies {
3738
}
3839
testImplementation "org.springframework.boot:spring-boot-cli:$springBootVersion", {
3940
exclude group:'org.codehaus.groovy', module:'groovy'
41+
exclude group:'jline', module:'jline'
4042
}
4143
}

grails-forge/grails-cli-shadow/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ dependencies {
3434

3535
// shell-cli dependencies
3636
implementation 'org.apache.grails:grails-shell-cli'
37-
implementation 'org.springframework.boot:spring-boot-cli'
37+
implementation('org.springframework.boot:spring-boot-cli') {
38+
exclude group: 'jline', module: 'jline'
39+
}
3840
implementation 'org.apache.groovy:groovy'
3941
implementation 'org.apache.groovy:groovy-ant'
4042
implementation 'org.apache.groovy:groovy-templates'

grails-forge/grails-cli/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ dependencies {
5454

5555
// shell-cli dependencies
5656
implementation 'org.apache.grails:grails-shell-cli'
57-
implementation 'org.springframework.boot:spring-boot-cli'
57+
implementation('org.springframework.boot:spring-boot-cli') {
58+
exclude group: 'jline', module: 'jline'
59+
}
5860
implementation 'org.apache.groovy:groovy'
5961
implementation 'org.apache.groovy:groovy-ant'
6062
implementation 'org.apache.groovy:groovy-templates'
@@ -246,4 +248,4 @@ sdkman {
246248
'WINDOWS_64': "https://github.com/apache/grails-core/releases/download/v${project.version}/apache-grails-${project.version}-bin.zip",
247249
'LINUX_64' : "https://github.com/apache/grails-core/releases/download/v${project.version}/apache-grails-${project.version}-bin.zip"
248250
] as Map<? extends String, ? extends String>
249-
}
251+
}

grails-shell-cli/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ dependencies {
6464
compileOnly 'org.springframework.boot:spring-boot'
6565
compileOnly 'org.springframework.boot:spring-boot-loader-tools'
6666
compileOnly 'org.springframework:spring-web'
67-
api 'org.springframework.boot:spring-boot-cli'
67+
api('org.springframework.boot:spring-boot-cli') {
68+
exclude group: 'jline', module: 'jline'
69+
}
6870
// Must be 'implementation' (not 'compileOnly') so the servlet API is included in the shadow JAR.
6971
// grails-web-common registers HttpServletRequestExtension as a Groovy extension module, which is
7072
// auto-discovered when GroovyScriptCommandFactory compiles custom scripts in src/main/scripts/.

0 commit comments

Comments
 (0)