163 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
| import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 | |
| import org.springframework.build.shadow.ShadowSource
 | |
| 
 | |
| plugins {
 | |
| 	id 'me.champeau.mrjar'
 | |
| }
 | |
| 
 | |
| description = "Spring Core"
 | |
| 
 | |
| apply plugin: "kotlin"
 | |
| apply plugin: "kotlinx-serialization"
 | |
| 
 | |
| multiRelease {
 | |
| 	targetVersions 17, 21
 | |
| }
 | |
| 
 | |
| def javapoetVersion = "1.13.0"
 | |
| def objenesisVersion = "3.4"
 | |
| 
 | |
| configurations {
 | |
| 	java21Api.extendsFrom(api)
 | |
| 	java21Implementation.extendsFrom(implementation)
 | |
| 	javapoet
 | |
| 	objenesis
 | |
| 	graalvm
 | |
| }
 | |
| 
 | |
| task javapoetRepackJar(type: ShadowJar) {
 | |
| 	archiveBaseName = 'spring-javapoet-repack'
 | |
| 	archiveVersion = javapoetVersion
 | |
| 	configurations = [project.configurations.javapoet]
 | |
| 	relocate('com.squareup.javapoet', 'org.springframework.javapoet')
 | |
| }
 | |
| 
 | |
| task javapoetSource(type: ShadowSource) {
 | |
| 	configurations = [project.configurations.javapoet]
 | |
| 	relocate('com.squareup.javapoet', 'org.springframework.javapoet')
 | |
| 	outputDirectory = file("build/shadow-source/javapoet")
 | |
| }
 | |
| 
 | |
| task javapoetSourceJar(type: Jar) {
 | |
| 	archiveBaseName = 'spring-javapoet-repack'
 | |
| 	archiveVersion = javapoetVersion
 | |
| 	archiveClassifier = 'sources'
 | |
| 	from javapoetSource
 | |
| }
 | |
| 
 | |
| task objenesisRepackJar(type: ShadowJar) {
 | |
| 	archiveBaseName = 'spring-objenesis-repack'
 | |
| 	archiveVersion = objenesisVersion
 | |
| 	configurations = [project.configurations.objenesis]
 | |
| 	relocate('org.objenesis', 'org.springframework.objenesis')
 | |
| }
 | |
| 
 | |
| task objenesisSource(type: ShadowSource) {
 | |
| 	configurations = [project.configurations.objenesis]
 | |
| 	relocate('org.objenesis', 'org.springframework.objenesis')
 | |
| 	outputDirectory = file("build/shadow-source/objenesis")
 | |
| }
 | |
| 
 | |
| task objenesisSourceJar(type: Jar) {
 | |
| 	archiveBaseName = 'spring-objenesis-repack'
 | |
| 	archiveVersion = objenesisVersion
 | |
| 	archiveClassifier = 'sources'
 | |
| 	from objenesisSource
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
| 	javapoet("com.squareup:javapoet:${javapoetVersion}@jar")
 | |
| 	objenesis("org.objenesis:objenesis:${objenesisVersion}@jar")
 | |
| 	api(files(javapoetRepackJar))
 | |
| 	api(files(objenesisRepackJar))
 | |
| 	api(project(":spring-jcl"))
 | |
| 	compileOnly("io.projectreactor.tools:blockhound")
 | |
| 	compileOnly("org.graalvm.sdk:graal-sdk")
 | |
| 	optional("io.micrometer:context-propagation")
 | |
| 	optional("io.netty:netty-buffer")
 | |
| 	optional("io.netty:netty5-buffer")
 | |
| 	optional("io.projectreactor:reactor-core")
 | |
| 	optional("io.reactivex.rxjava3:rxjava")
 | |
| 	optional("io.smallrye.reactive:mutiny")
 | |
| 	optional("net.sf.jopt-simple:jopt-simple")
 | |
| 	optional("org.aspectj:aspectjweaver")
 | |
| 	optional("org.eclipse.jetty:jetty-io")
 | |
| 	optional("org.jetbrains.kotlin:kotlin-reflect")
 | |
| 	optional("org.jetbrains.kotlin:kotlin-stdlib")
 | |
| 	optional("org.jetbrains.kotlinx:kotlinx-coroutines-core")
 | |
| 	optional("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
 | |
| 	testFixturesImplementation("com.google.code.findbugs:jsr305")
 | |
| 	testFixturesImplementation("io.projectreactor:reactor-test")
 | |
| 	testFixturesImplementation("org.assertj:assertj-core")
 | |
| 	testFixturesImplementation("org.junit.platform:junit-platform-launcher")
 | |
| 	testFixturesImplementation("org.junit.jupiter:junit-jupiter-api")
 | |
| 	testFixturesImplementation("org.junit.jupiter:junit-jupiter-params")
 | |
| 	testFixturesImplementation("org.xmlunit:xmlunit-assertj")
 | |
| 	testImplementation("com.fasterxml.jackson.core:jackson-databind")
 | |
| 	testImplementation("com.fasterxml.woodstox:woodstox-core")
 | |
| 	testImplementation("com.google.code.findbugs:jsr305")
 | |
| 	testImplementation("com.squareup.okhttp3:mockwebserver")
 | |
| 	testImplementation("io.projectreactor:reactor-test")
 | |
| 	testImplementation("io.projectreactor.tools:blockhound")
 | |
| 	testImplementation("jakarta.annotation:jakarta.annotation-api")
 | |
| 	testImplementation("jakarta.xml.bind:jakarta.xml.bind-api")
 | |
| 	testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json")
 | |
| 	testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
 | |
| 	testImplementation("org.mockito:mockito-core")
 | |
| 	testImplementation("org.skyscreamer:jsonassert")
 | |
| 	testImplementation("org.xmlunit:xmlunit-assertj")
 | |
| 	testImplementation("org.xmlunit:xmlunit-matchers")
 | |
| }
 | |
| 
 | |
| jar {
 | |
| 	manifest.attributes["Dependencies"] = "jdk.unsupported,org.jboss.vfs" // for WildFly (Objenesis and VfsUtils)
 | |
| 
 | |
| 	dependsOn javapoetRepackJar
 | |
| 	from(zipTree(javapoetRepackJar.archiveFile)) {
 | |
| 		include "org/springframework/javapoet/**"
 | |
| 	}
 | |
| 
 | |
| 	dependsOn objenesisRepackJar
 | |
| 	from(zipTree(objenesisRepackJar.archiveFile)) {
 | |
| 		include "org/springframework/objenesis/**"
 | |
| 	}
 | |
| }
 | |
| 
 | |
| test {
 | |
| 	// Make sure the classes dir is used on the test classpath (required by ResourceTests).
 | |
| 	// When test fixtures are involved, the JAR is used by default.
 | |
| 	classpath = sourceSets.main.output.classesDirs + files(sourceSets.main.output.resourcesDir) + classpath - files(jar.archiveFile)
 | |
| 
 | |
| 	// Ensure that BlockHound tests run on JDK 13+. For details, see:
 | |
| 	// https://github.com/reactor/BlockHound/issues/33
 | |
| 	jvmArgs += [
 | |
| 		"-XX:+AllowRedefinitionToAddDeleteMethods"
 | |
| 	]
 | |
| }
 | |
| 
 | |
| sourcesJar {
 | |
| 	dependsOn javapoetSourceJar
 | |
| 	dependsOn objenesisSourceJar
 | |
| 	from javapoetSource
 | |
| 	from objenesisSource
 | |
| }
 | |
| 
 | |
| eclipse {
 | |
| 	synchronizationTasks javapoetSourceJar, objenesisSourceJar
 | |
| 	classpath {
 | |
| 		file {
 | |
| 			whenMerged {
 | |
| 				def pattern = ~/\/spring-\w+-repack-/
 | |
| 				entries.forEach {
 | |
| 					if (pattern.matcher(it.path).find()) {
 | |
| 						def sourcesJar = it.path.replace('.jar', '-sources.jar')
 | |
| 						it.sourcePath = fileReference(file(sourcesJar))
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| tasks['eclipse'].dependsOn(javapoetRepackJar, javapoetSourceJar, objenesisRepackJar, objenesisSourceJar)
 |