|
|
|
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"
|
Latest dependency updates (Tomcat 9.0.27, Undertow 2.0.27, RxJava 2.2.13, Gson 2.8.6, Apache Johnzon 1.2.1, Hibernate ORM 5.4.8, EclipseLink 2.7.5, H2 1.4.200, POI 4.1.1, Quartz 2.3.2, WebJars Locator 0.42, HtmlUnit 2.36, Checkstyle 8.26, Mockito 3.1, Objenesis 3.1)
5 years ago
|
|
|
def objenesisVersion = "3.1"
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
cglib
|
|
|
|
objenesis
|
|
|
|
coroutines
|
|
|
|
}
|
|
|
|
|
|
|
|
task cglibRepackJar(type: ShadowJar) {
|
|
|
|
archiveBaseName = 'spring-cglib-repack'
|
|
|
|
archiveVersion = cglibVersion
|
|
|
|
configurations = [project.configurations.cglib]
|
|
|
|
relocate 'net.sf.cglib', 'org.springframework.cglib'
|
|
|
|
relocate 'org.objectweb.asm', 'org.springframework.asm'
|
|
|
|
}
|
|
|
|
|
|
|
|
task objenesisRepackJar(type: ShadowJar) {
|
|
|
|
archiveBaseName = 'spring-objenesis-repack'
|
|
|
|
archiveVersion = 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"))
|
|
|
|
compileOnly("io.projectreactor.tools:blockhound")
|
|
|
|
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.reactivex.rxjava3:rxjava")
|
|
|
|
optional("io.netty:netty-buffer")
|
|
|
|
testCompile("io.projectreactor:reactor-test")
|
|
|
|
testCompile("com.google.code.findbugs:jsr305")
|
|
|
|
testCompile("javax.annotation:javax.annotation-api")
|
|
|
|
testCompile("javax.xml.bind:jaxb-api")
|
|
|
|
testCompile("com.fasterxml.woodstox:woodstox-core")
|
|
|
|
testCompile("org.xmlunit:xmlunit-assertj")
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers")
|
|
|
|
testCompile(project(":kotlin-coroutines"))
|
|
|
|
testCompile("io.projectreactor.tools:blockhound")
|
|
|
|
testFixturesImplementation("io.projectreactor:reactor-test")
|
|
|
|
testFixturesImplementation("com.google.code.findbugs:jsr305")
|
|
|
|
testFixturesImplementation("org.junit.platform:junit-platform-launcher")
|
|
|
|
testFixturesImplementation("org.junit.jupiter:junit-jupiter-api")
|
|
|
|
testFixturesImplementation("org.junit.jupiter:junit-jupiter-params")
|
|
|
|
testFixturesImplementation("org.assertj:assertj-core")
|
|
|
|
testFixturesImplementation("org.xmlunit:xmlunit-assertj")
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
reproducibleFileOrder = true
|
|
|
|
preserveFileTimestamps = false // maybe not necessary here, but good for reproducibility
|
|
|
|
manifest.attributes["Dependencies"] = "jdk.unsupported" // JBoss modules
|
|
|
|
|
|
|
|
// 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
|
|
|
|
}
|
|
|
|
|
|
|
|
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 + classpath - files(jar.archiveFile)
|
|
|
|
}
|