2020-01-10 21:48:43 +08:00
|
|
|
plugins {
|
|
|
|
id 'java'
|
|
|
|
id 'org.springframework.boot.deployed'
|
|
|
|
id 'org.springframework.boot.conventions'
|
|
|
|
id 'org.springframework.boot.integration-test'
|
2020-01-15 20:32:37 +08:00
|
|
|
id 'org.springframework.boot.internal-dependency-management'
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
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')
|
|
|
|
|
2020-01-15 20:32:37 +08:00
|
|
|
implementation platform(project(':spring-boot-project:spring-boot-parent'))
|
2020-01-10 21:48:43 +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'
|
|
|
|
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'
|
|
|
|
|
2020-01-15 20:32:37 +08:00
|
|
|
intTestImplementation platform(project(':spring-boot-project:spring-boot-dependencies'))
|
2020-01-10 21:48:43 +08:00
|
|
|
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) {
|
2020-01-22 10:33:33 +08:00
|
|
|
destinationDir = file("${buildDir}/generated-resources/org/springframework/boot/cli/compiler/dependencies")
|
2020-01-10 21:48:43 +08:00
|
|
|
from configurations.dependenciesBom
|
|
|
|
}
|
|
|
|
|
|
|
|
task syncTestRepository(type: Sync) {
|
|
|
|
destinationDir = file("${buildDir}/test-repository")
|
|
|
|
from configurations.testRepository
|
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
2020-01-22 10:33:33 +08:00
|
|
|
output.dir("${buildDir}/generated-resources", builtBy: 'syncSpringBootDependenciesBom')
|
2020-01-10 21:48:43 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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
|
2020-01-22 10:33:33 +08:00
|
|
|
outputDir = file("${buildDir}/scoop")
|
2020-01-10 21:48:43 +08:00
|
|
|
template = file('src/main/scoop/springboot.json')
|
|
|
|
archive = zip.archiveFile
|
|
|
|
}
|
|
|
|
|
2020-01-22 10:33:33 +08:00
|
|
|
def scoopManifestArtifact = artifacts.add('archives', file("${buildDir}/scoop/springboot.json")) {
|
2020-01-10 21:48:43 +08:00
|
|
|
type 'json'
|
|
|
|
classifier 'scoop'
|
|
|
|
builtBy 'scoopManifest'
|
|
|
|
}
|
|
|
|
|
|
|
|
task homebrewFormula(type: org.springframework.boot.build.cli.HomebrewFormula) {
|
|
|
|
dependsOn tar
|
2020-01-22 10:33:33 +08:00
|
|
|
outputDir = file("${buildDir}/homebrew")
|
2020-01-10 21:48:43 +08:00
|
|
|
template = file('src/main/homebrew/springboot.rb')
|
|
|
|
archive = tar.archiveFile
|
|
|
|
}
|
|
|
|
|
2020-01-22 10:33:33 +08:00
|
|
|
def homebrewFormulaArtifact = artifacts.add('archives', file("${buildDir}/homebrew/springboot.rb")) {
|
2020-01-10 21:48:43 +08:00
|
|
|
type 'rb'
|
|
|
|
classifier 'homebrew'
|
|
|
|
builtBy 'homebrewFormula'
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
getByName('maven') {
|
|
|
|
artifact fullJar
|
|
|
|
artifact tar
|
|
|
|
artifact zip
|
|
|
|
artifact scoopManifestArtifact
|
|
|
|
artifact homebrewFormulaArtifact
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|