You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.8 KiB
108 lines
3.8 KiB
description = "Spring Core" |
|
|
|
dependencyManagement { |
|
imports { |
|
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" |
|
mavenBom "io.netty:netty-bom:${nettyVersion}" |
|
} |
|
} |
|
|
|
// 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.2.10" |
|
def objenesisVersion = "3.0.1" |
|
|
|
configurations { |
|
jarjar |
|
cglib |
|
objenesis |
|
} |
|
|
|
task cglibRepackJar(type: Jar) { repackJar -> |
|
repackJar.baseName = "spring-cglib-repack" |
|
repackJar.version = cglibVersion |
|
|
|
doLast() { |
|
project.ant { |
|
taskdef name: "jarjar", classname: "org.pantsbuild.jarjar.JarJarTask", |
|
classpath: configurations.jarjar.asPath |
|
jarjar(destfile: repackJar.archivePath) { |
|
configurations.cglib.each { originalJar -> |
|
zipfileset(src: originalJar) |
|
} |
|
// Repackage net.sf.cglib => org.springframework.cglib |
|
rule(pattern: "net.sf.cglib.**", result: "org.springframework.cglib.@1") |
|
// As mentioned above, transform cglib's internal asm dependencies from |
|
// org.objectweb.asm => org.springframework.asm. Doing this counts on the |
|
// the fact that Spring and cglib depend on the same version of asm! |
|
rule(pattern: "org.objectweb.asm.**", result: "org.springframework.asm.@1") |
|
} |
|
} |
|
} |
|
} |
|
|
|
task objenesisRepackJar(type: Jar) { repackJar -> |
|
repackJar.baseName = "spring-objenesis-repack" |
|
repackJar.version = objenesisVersion |
|
|
|
doLast() { |
|
project.ant { |
|
taskdef name: "jarjar", classname: "org.pantsbuild.jarjar.JarJarTask", |
|
classpath: configurations.jarjar.asPath |
|
jarjar(destfile: repackJar.archivePath) { |
|
configurations.objenesis.each { originalJar -> |
|
zipfileset(src: originalJar) |
|
} |
|
// Repackage org.objenesis => org.springframework.objenesis |
|
rule(pattern: "org.objenesis.**", result: "org.springframework.objenesis.@1") |
|
} |
|
} |
|
} |
|
} |
|
|
|
dependencies { |
|
cglib("cglib:cglib:${cglibVersion}@jar") |
|
objenesis("org.objenesis:objenesis:${objenesisVersion}@jar") |
|
jarjar("org.pantsbuild:jarjar:1.7.2") |
|
|
|
compile(files(cglibRepackJar)) |
|
compile(files(objenesisRepackJar)) |
|
compile(project(":spring-jcl")) |
|
optional("net.sf.jopt-simple:jopt-simple:5.0.4") |
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}") |
|
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") |
|
optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") |
|
optional("io.projectreactor:reactor-core") |
|
optional("io.reactivex:rxjava:${rxjavaVersion}") |
|
optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") |
|
optional("io.reactivex.rxjava2:rxjava:${rxjava2Version}") |
|
optional("io.netty:netty-buffer") |
|
testCompile("io.projectreactor:reactor-test") |
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") |
|
testCompile("org.xmlunit:xmlunit-matchers:2.6.2") |
|
testCompile("javax.xml.bind:jaxb-api:2.3.1") |
|
testCompile("com.fasterxml.woodstox:woodstox-core:5.2.0") { |
|
exclude group: "stax", module: "stax-api" |
|
} |
|
} |
|
|
|
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/**" |
|
} |
|
}
|
|
|