2020-01-10 21:48:43 +08:00
|
|
|
plugins {
|
2020-01-23 03:24:37 +08:00
|
|
|
id "java"
|
2022-09-08 06:51:53 +08:00
|
|
|
id "eclipse"
|
2020-01-23 03:24:37 +08:00
|
|
|
id "org.springframework.boot.deployed"
|
|
|
|
id "org.springframework.boot.conventions"
|
|
|
|
id "org.springframework.boot.integration-test"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
description = "Spring Boot CLI"
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
dependenciesBom
|
|
|
|
loader
|
|
|
|
testRepository
|
2022-09-08 06:51:53 +08:00
|
|
|
compileOnlyProject
|
|
|
|
compileClasspath.extendsFrom(compileOnlyProject)
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2022-09-08 06:51:53 +08:00
|
|
|
compileOnlyProject(project(":spring-boot-project:spring-boot"))
|
2020-01-23 03:24:37 +08:00
|
|
|
|
2020-01-23 06:09:17 +08:00
|
|
|
dependenciesBom(project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "effectiveBom"))
|
2020-01-23 03:24:37 +08:00
|
|
|
|
2020-01-23 06:09:17 +08:00
|
|
|
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")
|
2020-01-23 03:24:37 +08:00
|
|
|
implementation("org.apache.httpcomponents:httpclient") {
|
|
|
|
exclude group: "commons-logging", module: "commons-logging"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
2020-01-23 06:09:17 +08:00
|
|
|
implementation("org.slf4j:slf4j-simple")
|
|
|
|
implementation("org.springframework:spring-core")
|
|
|
|
implementation("org.springframework.security:spring-security-crypto")
|
2020-01-23 03:24:37 +08:00
|
|
|
|
2020-01-23 06:09:17 +08:00
|
|
|
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")
|
2020-01-23 03:24:37 +08:00
|
|
|
|
2020-01-23 06:09:17 +08:00
|
|
|
loader(project(":spring-boot-project:spring-boot-tools:spring-boot-loader"))
|
2020-01-23 03:24:37 +08:00
|
|
|
|
2020-01-23 06:09:17 +08:00
|
|
|
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.junit.jupiter:junit-jupiter")
|
|
|
|
testImplementation("org.mockito:mockito-core")
|
2020-08-08 22:53:42 +08:00
|
|
|
testImplementation("org.mockito:mockito-junit-jupiter")
|
2020-01-23 06:09:17 +08:00
|
|
|
testImplementation("org.springframework:spring-test")
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
task fullJar(type: Jar) {
|
2021-03-31 03:51:33 +08:00
|
|
|
dependsOn configurations.loader
|
2020-01-23 03:24:37 +08:00
|
|
|
classifier = "full"
|
|
|
|
entryCompression = "stored"
|
2020-01-10 21:48:43 +08:00
|
|
|
from(configurations.runtimeClasspath) {
|
2020-01-23 03:24:37 +08:00
|
|
|
into "BOOT-INF/lib"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
from(sourceSets.main.output) {
|
2020-01-23 03:24:37 +08:00
|
|
|
into "BOOT-INF/classes"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
2021-03-31 03:41:46 +08:00
|
|
|
from {
|
|
|
|
zipTree(configurations.loader.singleFile).matching {
|
2021-02-05 20:04:01 +08:00
|
|
|
exclude "META-INF/LICENSE.txt"
|
|
|
|
exclude "META-INF/NOTICE.txt"
|
2022-02-12 05:31:20 +08:00
|
|
|
exclude "META-INF/spring-boot.properties"
|
2021-02-05 20:04:01 +08:00
|
|
|
}
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
manifest {
|
|
|
|
attributes(
|
2020-01-23 03:24:37 +08:00
|
|
|
"Main-Class": "org.springframework.boot.loader.JarLauncher",
|
|
|
|
"Start-Class": "org.springframework.boot.cli.SpringCli"
|
2020-01-10 21:48:43 +08:00
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
def configureArchive(archive) {
|
2020-01-23 03:24:37 +08:00
|
|
|
archive.classifier = "bin"
|
2020-01-10 21:48:43 +08:00
|
|
|
archive.into "spring-${project.version}"
|
|
|
|
archive.from(fullJar) {
|
|
|
|
rename {
|
|
|
|
it.replace("-full", "")
|
|
|
|
}
|
2020-01-23 03:24:37 +08:00
|
|
|
into "lib/"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
2020-01-23 03:24:37 +08:00
|
|
|
archive.from(file("src/main/content")) {
|
2020-06-03 18:46:01 +08:00
|
|
|
dirMode = 0755
|
|
|
|
fileMode = 0644
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
2020-01-23 03:24:37 +08:00
|
|
|
archive.from(file("src/main/executablecontent")) {
|
2020-06-03 18:46:01 +08:00
|
|
|
fileMode = 0755
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task zip(type: Zip) {
|
2020-01-23 03:24:37 +08:00
|
|
|
classifier = "bin"
|
2020-01-10 21:48:43 +08:00
|
|
|
configureArchive it
|
|
|
|
}
|
|
|
|
|
|
|
|
intTest {
|
2022-09-09 03:49:03 +08:00
|
|
|
dependsOn zip
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
task tar(type: Tar) {
|
2020-01-23 03:24:37 +08:00
|
|
|
compression = "gzip"
|
|
|
|
archiveExtension = "tar.gz"
|
2020-01-10 21:48:43 +08:00
|
|
|
configureArchive it
|
|
|
|
}
|
|
|
|
|
|
|
|
task homebrewFormula(type: org.springframework.boot.build.cli.HomebrewFormula) {
|
|
|
|
dependsOn tar
|
2020-01-22 10:33:33 +08:00
|
|
|
outputDir = file("${buildDir}/homebrew")
|
2021-01-07 09:01:22 +08:00
|
|
|
template = file("src/main/homebrew/spring-boot.rb")
|
2020-01-10 21:48:43 +08:00
|
|
|
archive = tar.archiveFile
|
|
|
|
}
|
|
|
|
|
2021-01-07 09:01:22 +08:00
|
|
|
def homebrewFormulaArtifact = artifacts.add("archives", file("${buildDir}/homebrew/spring-boot.rb")) {
|
2020-01-23 03:24:37 +08:00
|
|
|
type "rb"
|
|
|
|
classifier "homebrew"
|
|
|
|
builtBy "homebrewFormula"
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
2020-01-23 03:24:37 +08:00
|
|
|
getByName("maven") {
|
2020-01-10 21:48:43 +08:00
|
|
|
artifact fullJar
|
|
|
|
artifact tar
|
|
|
|
artifact zip
|
|
|
|
artifact homebrewFormulaArtifact
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-09-08 06:51:53 +08:00
|
|
|
eclipse.classpath { // https://github.com/eclipse/buildship/issues/939
|
|
|
|
plusConfigurations += [ configurations.compileOnlyProject ]
|
|
|
|
}
|