92 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 | 
						|
 | 
						|
plugins {
 | 
						|
	id "com.github.johnrengelman.shadow" version "5.2.0"
 | 
						|
}
 | 
						|
 | 
						|
description = "Spring Core"
 | 
						|
 | 
						|
apply plugin: "kotlin"
 | 
						|
 | 
						|
// spring-core includes asm and repackages cglib, inlining both into the spring-core jar.
 | 
						|
// cglib itself depends on asm and is therefore further transformed by the JarJar task to
 | 
						|
// depend on org.springframework.asm; this avoids including two different copies of asm.
 | 
						|
def cglibVersion = "3.3.0"
 | 
						|
def objenesisVersion = "3.1"
 | 
						|
 | 
						|
configurations {
 | 
						|
	cglib
 | 
						|
	objenesis
 | 
						|
	coroutines
 | 
						|
}
 | 
						|
 | 
						|
task cglibRepackJar(type: ShadowJar) {
 | 
						|
	baseName = 'spring-cglib-repack'
 | 
						|
	version = cglibVersion
 | 
						|
	configurations = [project.configurations.cglib]
 | 
						|
	relocate 'net.sf.cglib', 'org.springframework.cglib'
 | 
						|
	relocate 'org.objectweb.asm', 'org.springframework.asm'
 | 
						|
}
 | 
						|
 | 
						|
task objenesisRepackJar(type: ShadowJar) {
 | 
						|
	baseName = 'spring-objenesis-repack'
 | 
						|
	version = objenesisVersion
 | 
						|
	configurations = [project.configurations.objenesis]
 | 
						|
	relocate 'org.objenesis', 'org.springframework.objenesis'
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
	cglib("cglib:cglib:${cglibVersion}@jar")
 | 
						|
	objenesis("org.objenesis:objenesis:${objenesisVersion}@jar")
 | 
						|
	coroutines(project(path: ":kotlin-coroutines", configuration: 'classesOnlyElements'))
 | 
						|
	compile(files(cglibRepackJar))
 | 
						|
	compile(files(objenesisRepackJar))
 | 
						|
	compile(project(":spring-jcl"))
 | 
						|
	compileOnly(project(":kotlin-coroutines"))
 | 
						|
	optional("net.sf.jopt-simple:jopt-simple")
 | 
						|
	optional("org.aspectj:aspectjweaver")
 | 
						|
	optional("org.jetbrains.kotlin:kotlin-reflect")
 | 
						|
	optional("org.jetbrains.kotlin:kotlin-stdlib")
 | 
						|
	optional("io.projectreactor:reactor-core")
 | 
						|
	optional("io.reactivex:rxjava")
 | 
						|
	optional("io.reactivex:rxjava-reactive-streams")
 | 
						|
	optional("io.reactivex.rxjava2:rxjava")
 | 
						|
	optional("io.netty:netty-buffer")
 | 
						|
	testCompile("io.projectreactor:reactor-test")
 | 
						|
	testCompile("javax.annotation:javax.annotation-api")
 | 
						|
	testCompile("com.google.code.findbugs:jsr305")
 | 
						|
	testCompile("org.xmlunit:xmlunit-assertj")
 | 
						|
	testCompile("org.xmlunit:xmlunit-matchers")
 | 
						|
	testCompile("javax.xml.bind:jaxb-api")
 | 
						|
	testCompile("com.fasterxml.woodstox:woodstox-core")
 | 
						|
	testCompile(project(":kotlin-coroutines"))
 | 
						|
	testFixturesApi("org.junit.jupiter:junit-jupiter-api")
 | 
						|
	testFixturesApi("org.junit.jupiter:junit-jupiter-params")
 | 
						|
	testFixturesImplementation("com.google.code.findbugs:jsr305")
 | 
						|
	testFixturesImplementation("io.projectreactor:reactor-test")
 | 
						|
	testFixturesImplementation("org.assertj:assertj-core")
 | 
						|
	testFixturesImplementation("org.xmlunit:xmlunit-assertj")
 | 
						|
}
 | 
						|
 | 
						|
jar {
 | 
						|
	// Inline repackaged cglib classes directly into spring-core jar
 | 
						|
	dependsOn cglibRepackJar
 | 
						|
	from(zipTree(cglibRepackJar.archivePath)) {
 | 
						|
		include "org/springframework/cglib/**"
 | 
						|
		exclude "org/springframework/cglib/core/AbstractClassGenerator*.class"
 | 
						|
		exclude "org/springframework/cglib/core/AsmApi*.class"
 | 
						|
		exclude "org/springframework/cglib/core/KeyFactory.class"
 | 
						|
		exclude "org/springframework/cglib/core/KeyFactory\$*.class"
 | 
						|
		exclude "org/springframework/cglib/core/ReflectUtils*.class"
 | 
						|
		exclude "org/springframework/cglib/proxy/Enhancer*.class"
 | 
						|
		exclude "org/springframework/cglib/proxy/MethodProxy*.class"
 | 
						|
	}
 | 
						|
 | 
						|
	dependsOn objenesisRepackJar
 | 
						|
	from(zipTree(objenesisRepackJar.archivePath)) {
 | 
						|
		include "org/springframework/objenesis/**"
 | 
						|
	}
 | 
						|
 | 
						|
	from configurations.coroutines
 | 
						|
}
 |