Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
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.
2020-01-22 15:49:52 -08:00

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
}
}
}