
Replace Gradle single quote strings with the double quote form whenever possible. The change helps to being consistency to the dependencies section where mostly single quotes were used, but occasionally double quotes were required due to `${}` references.
195 lines
6.8 KiB
Groovy
195 lines
6.8 KiB
Groovy
plugins {
|
|
id "java"
|
|
id "org.springframework.boot.deployed"
|
|
id "org.springframework.boot.conventions"
|
|
id "org.springframework.boot.integration-test"
|
|
id "org.springframework.boot.internal-dependency-management"
|
|
}
|
|
|
|
description = "Spring Boot CLI"
|
|
|
|
configurations {
|
|
dependenciesBom
|
|
loader
|
|
testRepository
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly project(":spring-boot-project:spring-boot")
|
|
compileOnly "jakarta.servlet:jakarta.servlet-api"
|
|
compileOnly "org.codehaus.groovy:groovy-templates"
|
|
compileOnly "org.springframework:spring-web"
|
|
|
|
dependenciesBom project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "effectiveBom")
|
|
|
|
implementation platform(project(":spring-boot-project:spring-boot-parent"))
|
|
implementation project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools")
|
|
implementation "com.vaadin.external.google:android-json"
|
|
implementation "jline:jline"
|
|
implementation "net.sf.jopt-simple:jopt-simple"
|
|
implementation("org.apache.httpcomponents:httpclient") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
implementation "org.apache.maven:maven-model"
|
|
implementation("org.apache.maven:maven-resolver-provider") {
|
|
exclude group: "com.google.guava", module: "guava"
|
|
}
|
|
implementation "org.apache.maven.resolver:maven-resolver-connector-basic"
|
|
implementation "org.apache.maven.resolver:maven-resolver-transport-file"
|
|
implementation("org.apache.maven.resolver:maven-resolver-transport-http") {
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
implementation "org.apache.maven:maven-settings-builder"
|
|
implementation "org.codehaus.groovy:groovy"
|
|
implementation "org.slf4j:slf4j-simple"
|
|
implementation "org.sonatype.plexus:plexus-sec-dispatcher"
|
|
implementation("org.sonatype.sisu:sisu-inject-plexus") {
|
|
exclude group: "javax.enterprise", module: "cdi-api"
|
|
exclude group: "org.sonatype.sisu", module: "sisu-inject-bean"
|
|
}
|
|
implementation "org.springframework:spring-core"
|
|
implementation "org.springframework.security:spring-security-crypto"
|
|
|
|
intTestImplementation platform(project(":spring-boot-project:spring-boot-dependencies"))
|
|
intTestImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools")
|
|
intTestImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")
|
|
intTestImplementation "org.assertj:assertj-core"
|
|
intTestImplementation "org.junit.jupiter:junit-jupiter"
|
|
intTestImplementation "org.springframework:spring-core"
|
|
|
|
loader project(":spring-boot-project:spring-boot-tools:spring-boot-loader")
|
|
|
|
testImplementation project(":spring-boot-project:spring-boot")
|
|
testImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")
|
|
testImplementation project(":spring-boot-project:spring-boot-test")
|
|
testImplementation "org.assertj:assertj-core"
|
|
testImplementation "org.codehaus.groovy:groovy-templates"
|
|
testImplementation "org.junit.jupiter:junit-jupiter"
|
|
testImplementation "org.mockito:mockito-core"
|
|
testImplementation "org.springframework:spring-test"
|
|
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-amqp", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-aop", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-artemis", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-batch", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-data-jpa", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-integration", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-security", configuration: "mavenRepository")
|
|
testRepository project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-web", configuration: "mavenRepository")
|
|
}
|
|
|
|
task syncSpringBootDependenciesBom(type: Sync) {
|
|
destinationDir = file("${buildDir}/generated-resources/org/springframework/boot/cli/compiler/dependencies")
|
|
from configurations.dependenciesBom
|
|
}
|
|
|
|
task syncTestRepository(type: Sync) {
|
|
destinationDir = file("${buildDir}/test-repository")
|
|
from configurations.testRepository
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
output.dir("${buildDir}/generated-resources", builtBy: "syncSpringBootDependenciesBom")
|
|
}
|
|
}
|
|
|
|
test {
|
|
dependsOn syncTestRepository
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
task fullJar(type: Jar) {
|
|
classifier = "full"
|
|
entryCompression = "stored"
|
|
from(configurations.runtimeClasspath) {
|
|
into "BOOT-INF/lib"
|
|
}
|
|
from(sourceSets.main.output) {
|
|
into "BOOT-INF/classes"
|
|
}
|
|
into("") {
|
|
from zipTree(configurations.loader.singleFile)
|
|
}
|
|
manifest {
|
|
attributes(
|
|
"Class-Loader": "groovy.lang.GroovyClassLoader",
|
|
"Main-Class": "org.springframework.boot.loader.JarLauncher",
|
|
"Start-Class": "org.springframework.boot.cli.SpringCli"
|
|
)
|
|
}
|
|
}
|
|
|
|
def configureArchive(archive) {
|
|
archive.classifier = "bin"
|
|
archive.into "spring-${project.version}"
|
|
archive.from(fullJar) {
|
|
rename {
|
|
it.replace("-full", "")
|
|
}
|
|
into "lib/"
|
|
}
|
|
archive.from(file("src/main/content")) {
|
|
eachFile { it.mode = it.directory ? 0x755 : 0x644 }
|
|
}
|
|
archive.from(file("src/main/executablecontent")) {
|
|
eachFile { it.mode = 0x755 }
|
|
}
|
|
}
|
|
|
|
task zip(type: Zip) {
|
|
classifier = "bin"
|
|
configureArchive it
|
|
}
|
|
|
|
intTest {
|
|
dependsOn syncTestRepository, zip
|
|
}
|
|
|
|
task tar(type: Tar) {
|
|
compression = "gzip"
|
|
archiveExtension = "tar.gz"
|
|
configureArchive it
|
|
}
|
|
|
|
task scoopManifest(type: org.springframework.boot.build.cli.ScoopManifest) {
|
|
dependsOn zip
|
|
outputDir = file("${buildDir}/scoop")
|
|
template = file("src/main/scoop/springboot.json")
|
|
archive = zip.archiveFile
|
|
}
|
|
|
|
def scoopManifestArtifact = artifacts.add("archives", file("${buildDir}/scoop/springboot.json")) {
|
|
type "json"
|
|
classifier "scoop"
|
|
builtBy "scoopManifest"
|
|
}
|
|
|
|
task homebrewFormula(type: org.springframework.boot.build.cli.HomebrewFormula) {
|
|
dependsOn tar
|
|
outputDir = file("${buildDir}/homebrew")
|
|
template = file("src/main/homebrew/springboot.rb")
|
|
archive = tar.archiveFile
|
|
}
|
|
|
|
def homebrewFormulaArtifact = artifacts.add("archives", file("${buildDir}/homebrew/springboot.rb")) {
|
|
type "rb"
|
|
classifier "homebrew"
|
|
builtBy "homebrewFormula"
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
getByName("maven") {
|
|
artifact fullJar
|
|
artifact tar
|
|
artifact zip
|
|
artifact scoopManifestArtifact
|
|
artifact homebrewFormulaArtifact
|
|
}
|
|
}
|
|
}
|
|
|