188 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
| plugins {
 | |
| 	id "java"
 | |
| 	id "org.springframework.boot.deployed"
 | |
| 	id "org.springframework.boot.conventions"
 | |
| 	id "org.springframework.boot.integration-test"
 | |
| }
 | |
| 
 | |
| 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(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"
 | |
| 		exclude group: "javax.inject", module: "javax.inject"
 | |
| 	}
 | |
| 	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") {
 | |
| 		exclude group: "javax.inject", module: "javax.inject"
 | |
| 	}
 | |
| 	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(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"))
 | |
| 
 | |
| 	testCompileOnly("org.apache.tomcat.embed:tomcat-embed-core")
 | |
| 	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.mockito:mockito-junit-jupiter")
 | |
| 	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
 | |
| }
 | |
| 
 | |
| task fullJar(type: Jar) {
 | |
| 	dependsOn configurations.loader
 | |
| 	classifier = "full"
 | |
| 	entryCompression = "stored"
 | |
| 	from(configurations.runtimeClasspath) {
 | |
| 		into "BOOT-INF/lib"
 | |
| 	}
 | |
| 	from(sourceSets.main.output) {
 | |
| 		into "BOOT-INF/classes"
 | |
| 	}
 | |
| 	from {
 | |
| 		zipTree(configurations.loader.singleFile).matching {
 | |
| 			exclude "META-INF/LICENSE.txt"
 | |
| 			exclude "META-INF/NOTICE.txt"
 | |
| 			exclude "META-INF/spring-boot.properties"
 | |
| 		}
 | |
| 	}
 | |
| 	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")) {
 | |
| 		dirMode = 0755
 | |
| 		fileMode = 0644
 | |
| 	}
 | |
| 	archive.from(file("src/main/executablecontent")) {
 | |
| 		fileMode = 0755
 | |
| 	}
 | |
| }
 | |
| 
 | |
| task zip(type: Zip) {
 | |
| 	classifier = "bin"
 | |
| 	configureArchive it
 | |
| }
 | |
| 
 | |
| intTest {
 | |
| 	dependsOn syncTestRepository, zip
 | |
| }
 | |
| 
 | |
| task tar(type: Tar) {
 | |
| 	compression = "gzip"
 | |
| 	archiveExtension = "tar.gz"
 | |
| 	configureArchive it
 | |
| }
 | |
| 
 | |
| task homebrewFormula(type: org.springframework.boot.build.cli.HomebrewFormula) {
 | |
| 	dependsOn tar
 | |
| 	outputDir = file("${buildDir}/homebrew")
 | |
| 	template = file("src/main/homebrew/spring-boot.rb")
 | |
| 	archive = tar.archiveFile
 | |
| }
 | |
| 
 | |
| def homebrewFormulaArtifact = artifacts.add("archives", file("${buildDir}/homebrew/spring-boot.rb")) {
 | |
| 	type "rb"
 | |
| 	classifier "homebrew"
 | |
| 	builtBy "homebrewFormula"
 | |
| }
 | |
| 
 | |
| publishing {
 | |
| 	publications {
 | |
| 		getByName("maven") {
 | |
| 			artifact fullJar
 | |
| 			artifact tar
 | |
| 			artifact zip
 | |
| 			artifact homebrewFormulaArtifact
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 |