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.
864 lines
34 KiB
864 lines
34 KiB
buildscript { |
|
repositories { |
|
maven { url 'http://repo.springsource.org/plugins-release' } |
|
} |
|
dependencies { |
|
classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.2.1' |
|
} |
|
} |
|
|
|
configure(allprojects) { |
|
apply plugin: 'java' |
|
apply plugin: 'eclipse' |
|
apply plugin: 'idea' |
|
|
|
group = 'org.springframework' |
|
|
|
sourceCompatibility=1.5 |
|
targetCompatibility=1.5 |
|
|
|
ext.aspectjVersion = '1.6.12' |
|
ext.hsqldbVersion='1.8.0.10' |
|
ext.junitVersion = '4.11.20120805.1225' // temporary use of snapshot; spring-test |
|
// still builds against on 4.10 |
|
ext.gradleScriptDir = "${rootProject.projectDir}/gradle" |
|
|
|
[compileJava, compileTestJava]*.options*.compilerArgs = ['-Xlint:none'] |
|
|
|
sourceSets.test.resources.srcDirs = ['src/test/resources', 'src/test/java'] |
|
|
|
test.systemProperty("java.awt.headless", "true") |
|
|
|
repositories { |
|
maven { url "http://repo.springsource.org/libs-release" } |
|
maven { url "http://repo.springsource.org/ebr-maven-external" } |
|
} |
|
|
|
dependencies { |
|
testCompile "org.hamcrest:hamcrest-all:1.3" |
|
testCompile "org.easymock:easymock:2.5.1" |
|
} |
|
|
|
// servlet-api (2.5) and tomcat-servlet-api (3.0) classpath entries should not be |
|
// exported to dependent projects in Eclipse to avoid false compilation errors due |
|
// to changing APIs across these versions |
|
eclipse.classpath.file.whenMerged { classpath -> |
|
classpath.entries.findAll { entry -> entry.path.contains('servlet-api') }*.exported = false |
|
} |
|
} |
|
|
|
configure(subprojects - project(":spring-test")) { |
|
dependencies { |
|
testCompile ("junit:junit-dep:${junitVersion}") { |
|
exclude group: 'org.hamcrest', module: 'hamcrest-core' |
|
} |
|
} |
|
} |
|
|
|
configure(subprojects) { subproject -> |
|
apply from: "${gradleScriptDir}/publish-maven.gradle" |
|
|
|
jar { |
|
manifest.attributes['Created-By'] = |
|
"${System.getProperty('java.version')} (${System.getProperty('java.specification.vendor')})" |
|
manifest.attributes['Implementation-Title'] = subproject.name |
|
manifest.attributes['Implementation-Version'] = subproject.version |
|
|
|
from("${rootProject.projectDir}/src/dist") { |
|
include "license.txt" |
|
include "notice.txt" |
|
into "META-INF" |
|
expand(copyright: new Date().format('yyyy'), version: project.version) |
|
} |
|
} |
|
|
|
javadoc { |
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED |
|
options.author = true |
|
options.header = project.name |
|
//options.overview = "${projectDir}/src/main/java/overview.html" |
|
} |
|
|
|
task sourcesJar(type: Jar, dependsOn:classes) { |
|
classifier = 'sources' |
|
from sourceSets.main.allJava.srcDirs |
|
include '**/*.java', '**/*.aj' |
|
} |
|
|
|
task javadocJar(type: Jar) { |
|
classifier = 'javadoc' |
|
from javadoc |
|
} |
|
|
|
artifacts { |
|
archives sourcesJar |
|
archives javadocJar |
|
} |
|
} |
|
|
|
|
|
project('spring-core') { |
|
description = 'Spring Core' |
|
|
|
// As of Spring 3.2 spring-core repackages both asm 4.0 and cglib 3.0 and inlines both |
|
// into the spring-core jar. cglib 3.0 itself depends on asm 4.0, and is therefore |
|
// further transformed by the JarJar task to depend on org.springframework.asm; this |
|
// avoids including two different copies of asm unnecessarily. If however future cglib |
|
// versions drift from the version of asm used by Spring internally, this duplication |
|
// will become necessary. |
|
def asmVersion = '4.0' |
|
def cglibVersion = '3.0' |
|
|
|
configurations { |
|
jarjar |
|
asm |
|
cglib |
|
} |
|
|
|
task asmRepackJar(type: Jar) { repackJar -> |
|
repackJar.baseName = "spring-asm-repack" |
|
repackJar.version = asmVersion |
|
|
|
doLast() { |
|
project.ant { |
|
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", |
|
classpath: configurations.jarjar.asPath |
|
jarjar(destfile: repackJar.archivePath) { |
|
configurations.asm.each { originalJar -> |
|
zipfileset(src: originalJar) |
|
} |
|
rule(pattern: 'org.objectweb.asm.**', result: 'org.springframework.asm.@1') |
|
} |
|
} |
|
} |
|
} |
|
|
|
task cglibRepackJar(type: Jar) { repackJar -> |
|
repackJar.baseName = "spring-cglib-repack" |
|
repackJar.version = cglibVersion |
|
|
|
doLast() { |
|
project.ant { |
|
taskdef name: "jarjar", classname: "com.tonicsystems.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') |
|
} |
|
} |
|
} |
|
} |
|
|
|
dependencies { |
|
asm "org.ow2.asm:asm:${asmVersion}@jar", "org.ow2.asm:asm-commons:${asmVersion}@jar" |
|
cglib "cglib:cglib:${cglibVersion}@jar" |
|
jarjar 'com.googlecode.jarjar:jarjar:1.3' |
|
|
|
compile files(asmRepackJar) |
|
compile "commons-logging:commons-logging:1.1.1" |
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional) |
|
compile("net.sf.jopt-simple:jopt-simple:3.0") { dep -> |
|
optional dep |
|
exclude group: 'org.apache.ant', module: 'ant' |
|
} |
|
compile("log4j:log4j:1.2.15") { dep -> |
|
optional dep |
|
exclude group: 'javax.mail', module: 'mail' |
|
exclude group: 'javax.jms', module: 'jms' |
|
exclude group: 'com.sun.jdmk', module: 'jmxtools' |
|
exclude group: 'com.sun.jmx', module: 'jmxri' |
|
} |
|
testCompile "xmlunit:xmlunit:1.2" |
|
testCompile "org.codehaus.woodstox:wstx-asl:3.2.7" |
|
} |
|
|
|
jar { |
|
// inline all repackaged asm and cglib classes directly into the spring-core jar |
|
dependsOn asmRepackJar |
|
from(zipTree(asmRepackJar.archivePath)) { |
|
include 'org/springframework/asm/**' |
|
} |
|
dependsOn cglibRepackJar |
|
from(zipTree(cglibRepackJar.archivePath)) { |
|
include 'org/springframework/cglib/**' |
|
} |
|
} |
|
} |
|
|
|
project('spring-beans') { |
|
description = 'Spring Beans' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile files(project(":spring-core").cglibRepackJar) |
|
compile("javax.el:el-api:1.0", provided) |
|
compile("javax.inject:javax.inject:1", provided) |
|
} |
|
} |
|
|
|
project('spring-aop') { |
|
description = 'Spring AOP' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile files(project(":spring-core").cglibRepackJar) |
|
compile project(":spring-beans") |
|
compile("aopalliance:aopalliance:1.0") |
|
compile("com.jamonapi:jamon:2.4", optional) |
|
compile("commons-pool:commons-pool:1.5.3", optional) |
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional) |
|
} |
|
} |
|
|
|
project('spring-expression') { |
|
description = 'Spring Expression Language (SpEL)' |
|
dependencies { |
|
compile project(":spring-core") |
|
} |
|
} |
|
|
|
project('spring-instrument') { |
|
description = 'Spring Instrument' |
|
dependencies { |
|
compile project(":spring-core") |
|
} |
|
jar { |
|
manifest.attributes['Premain-Class'] = |
|
'org.springframework.instrument.InstrumentationSavingAgent' |
|
} |
|
} |
|
|
|
project('spring-instrument-tomcat') { |
|
description = 'Spring Instrument Tomcat' |
|
dependencies { |
|
compile("org.apache.tomcat:catalina:6.0.16", provided) |
|
} |
|
} |
|
|
|
project('spring-context') { |
|
description = 'Spring Context' |
|
dependencies { |
|
compile(project(":spring-instrument"), optional) |
|
compile project(":spring-aop") |
|
compile project(":spring-beans") |
|
compile project(":spring-expression") |
|
compile project(":spring-core") |
|
compile files(project(":spring-core").cglibRepackJar) |
|
compile("backport-util-concurrent:backport-util-concurrent:3.0", optional) |
|
compile("javax.annotation:jsr250-api:1.0", optional) |
|
compile("javax.ejb:ejb-api:3.0", optional) |
|
compile("javax.inject:javax.inject:1", optional) |
|
compile("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1", optional) |
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1", optional) |
|
compile("javax.persistence:persistence-api:1.0", optional) |
|
compile("javax.validation:validation-api:1.0.0.GA", optional) |
|
compile("javax.xml.ws:jaxws-api:2.1-1") { dep -> |
|
optional dep |
|
exclude group: 'javax.jws', module: 'jsr181' |
|
} |
|
compile("org.beanshell:bsh:2.0b4", optional) |
|
compile("org.codehaus.groovy:groovy-all:1.6.3", optional) |
|
compile("org.hibernate:hibernate-validator:4.2.0.Final") { dep -> |
|
optional dep |
|
exclude group: 'org.slf4j', module: 'slf4j-api' |
|
} |
|
compile("joda-time:joda-time:1.6", optional) |
|
compile("org.jruby:jruby:1.4.0", optional) |
|
compile("org.slf4j:slf4j-api:1.6.1", optional) |
|
compile("org.codehaus.jsr166-mirror:jsr166:1.7.0", provided) |
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional) |
|
testCompile "commons-dbcp:commons-dbcp:1.2.2" |
|
testCompile("javax.xml:jaxrpc-api:1.1") |
|
testCompile("javax.inject:com.springsource.org.atinject.tck:1.0.0") |
|
} |
|
|
|
test { |
|
jvmArgs = ['-disableassertions:org.aspectj.weaver.UnresolvedType'] // SPR-7989 |
|
} |
|
} |
|
|
|
project('spring-tx') { |
|
description = 'Spring Transaction' |
|
dependencies { |
|
compile(project(":spring-context"), optional) // for JCA, @EnableTransactionManagement |
|
compile(project(":spring-aop"), optional) |
|
compile project(":spring-beans") |
|
compile project(":spring-core") |
|
compile("aopalliance:aopalliance:1.0") |
|
compile("com.ibm.websphere:uow:6.0.2.17", provided) |
|
compile("javax.resource:connector-api:1.5", optional) |
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1", optional) |
|
testCompile "org.easymock:easymockclassextension:2.3" |
|
} |
|
} |
|
|
|
project('spring-oxm') { |
|
description = 'Spring Object/XML Marshalling' |
|
apply from: 'oxm.gradle' |
|
dependencies { |
|
compile project(":spring-beans") |
|
compile project(":spring-core") |
|
compile(project(":spring-context"), optional) // for Jaxb2Marshaller |
|
compile "commons-lang:commons-lang:2.5" |
|
compile("com.thoughtworks.xstream:xstream:1.3.1", optional) |
|
compile("com.sun.xml.bind:jaxb-impl:2.1.7", optional) |
|
compile("org.jibx:jibx-run:1.2.3", optional) |
|
compile("org.apache.xmlbeans:xmlbeans:2.4.0", optional) |
|
compile("org.codehaus.castor:castor-xml:1.3.2", optional) |
|
testCompile "org.codehaus.jettison:jettison:1.0.1" |
|
testCompile "xmlunit:xmlunit:1.2" |
|
testCompile "xmlpull:xmlpull:1.1.3.4a" |
|
testCompile(files(genCastor.classesDir).builtBy(genCastor)) |
|
testCompile(files(genJaxb.classesDir).builtBy(genJaxb)) |
|
testCompile(files(genXmlbeans.classesDir).builtBy(genXmlbeans)) |
|
} |
|
} |
|
|
|
project('spring-jms') { |
|
description = 'Spring JMS' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile project(":spring-aop") |
|
compile project(":spring-context") |
|
compile project(":spring-tx") |
|
compile(project(":spring-oxm"), optional) |
|
compile("aopalliance:aopalliance:1.0") |
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2", optional) |
|
} |
|
} |
|
|
|
project('spring-jdbc') { |
|
description = 'Spring JDBC' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile(project(":spring-context"), optional) // for JndiDataSourceLookup |
|
compile project(":spring-tx") |
|
compile("c3p0:c3p0:0.9.1.2", optional) |
|
compile("hsqldb:hsqldb:${hsqldbVersion}", optional) |
|
compile("com.h2database:h2:1.0.71", optional) |
|
compile("org.apache.derby:derby:10.5.3.0_1", optional) |
|
compile("org.apache.derby:derbyclient:10.5.3.0_1", optional) |
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1", optional) |
|
testCompile "org.easymock:easymock:2.5.1" |
|
} |
|
} |
|
|
|
project('spring-context-support') { |
|
description = 'Spring Context Support' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile project(":spring-context") |
|
compile(project(":spring-jdbc"), optional) // for Quartz support |
|
compile(project(":spring-tx"), optional) // for Quartz support |
|
compile("org.codehaus.fabric3.api:commonj:1.1.0", optional) |
|
compile("javax.cache:cache-api:0.5", optional) |
|
compile("net.sf.ehcache:ehcache-core:2.0.0", optional) |
|
compile("opensymphony:quartz:1.6.2", optional) |
|
compile("javax.mail:mail:1.4", optional) |
|
compile("velocity:velocity:1.5", optional) |
|
compile("commons-collections:commons-collections:3.2", optional) |
|
compile("org.freemarker:freemarker:2.3.15", optional) |
|
compile("jasperreports:jasperreports:2.0.5") { dep -> |
|
optional dep |
|
transitive = false |
|
} |
|
compile("commons-digester:commons-digester:1.8.1", optional) |
|
compile("commons-beanutils:commons-beanutils:1.8.0", optional) |
|
compile("com.lowagie:itext:2.0.8", optional) |
|
testCompile "hsqldb:hsqldb:${hsqldbVersion}" |
|
testCompile("org.apache.poi:poi:3.0.2-FINAL") { |
|
exclude group: 'log4j', module: 'log4j' |
|
} |
|
} |
|
|
|
// pick up **/*.types files in src/main |
|
sourceSets.main.resources.srcDirs += 'src/main/java' |
|
} |
|
|
|
project('spring-web') { |
|
description = 'Spring Web' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-beans") // for MultiPartFilter |
|
compile project(":spring-aop") // for JaxWsPortProxyFactoryBean |
|
compile project(":spring-context") |
|
compile(project(":spring-oxm"), optional) // for MarshallingHttpMessageConverter |
|
compile("aopalliance:aopalliance:1.0") |
|
compile("com.caucho:hessian:3.2.1", optional) |
|
compile("rome:rome:1.0", optional) |
|
compile("javax.el:el-api:1.0", optional) |
|
compile("javax.faces:jsf-api:1.2_08", optional) |
|
compile("javax.portlet:portlet-api:2.0", provided) |
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0 |
|
compile("javax.servlet.jsp:jsp-api:2.1", provided) |
|
compile("javax.xml.soap:saaj-api:1.3", provided) |
|
compile("axis:axis:1.4", optional) |
|
compile("commons-fileupload:commons-fileupload:1.2", optional) |
|
runtime("commons-io:commons-io:1.3", optional) |
|
compile("commons-httpclient:commons-httpclient:3.1", optional) |
|
compile("org.apache.httpcomponents:httpclient:4.2", optional) |
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2", optional) |
|
compile("com.fasterxml.jackson.core:jackson-databind:2.0.1", optional) |
|
compile("taglibs:standard:1.1.2", optional) |
|
compile("org.eclipse.jetty:jetty-servlet:8.1.5.v20120716") { dep -> |
|
optional dep |
|
exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' |
|
} |
|
compile("org.eclipse.jetty:jetty-server:8.1.5.v20120716") { dep -> |
|
optional dep |
|
exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' |
|
} |
|
testCompile project(":spring-context-support") // for JafMediaTypeFactory |
|
testCompile "xmlunit:xmlunit:1.2" |
|
} |
|
|
|
// pick up ContextLoader.properties in src/main |
|
sourceSets.main.resources.srcDirs += 'src/main/java' |
|
} |
|
|
|
project('spring-orm') { |
|
description = 'Spring Object/Relational Mapping' |
|
dependencies { |
|
// compiling against both hibernate 3 and 4 here in order to support |
|
// our respective orm.hibernate3 and orm.hibernate4 packages |
|
compile("aopalliance:aopalliance:1.0") |
|
compile("org.hibernate:com.springsource.org.hibernate:3.3.1.GA", optional) |
|
compile("org.hibernate:hibernate-cglib-repack:2.1_3", optional) |
|
compile("org.hibernate:hibernate-annotations:3.4.0.GA", optional) |
|
compile("org.hibernate:hibernate-entitymanager:3.4.0.GA", optional) |
|
compile("org.apache.openjpa:openjpa:1.1.0", optional) |
|
compile("org.eclipse.persistence:org.eclipse.persistence.core:1.0.1", optional) |
|
compile("org.eclipse.persistence:org.eclipse.persistence.jpa:1.0.1", optional) |
|
compile("toplink.essentials:toplink-essentials:2.0-41b", optional) |
|
compile("javax.jdo:jdo-api:3.0", optional) |
|
compile("org.apache.ibatis:ibatis-sqlmap:2.3.4.726", optional) |
|
testCompile "javax.servlet:servlet-api:2.5" |
|
testCompile "org.slf4j:slf4j-jcl:1.5.3" |
|
testCompile "commons-dbcp:commons-dbcp:1.2.2" |
|
testCompile "org.eclipse.persistence:org.eclipse.persistence.asm:1.0.1" |
|
testCompile "org.eclipse.persistence:org.eclipse.persistence.antlr:1.0.1" |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile(project(":spring-aop"), optional) |
|
compile(project(":spring-context"), optional) |
|
compile project(":spring-tx") |
|
compile project(":spring-jdbc") |
|
compile(project(":spring-web")) { dep -> |
|
optional dep |
|
exclude group: 'javax.persistence', module: 'persistence-api' |
|
} |
|
} |
|
} |
|
|
|
project('spring-orm-hibernate4') { |
|
description = 'Spring Object/Relational Mapping - Hibernate 4 support' |
|
ext.mergeIntoProject = project(':spring-orm') |
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle" |
|
dependencies { |
|
compile project(":spring-orm").sourceSets.main.output |
|
compile project(":spring-tx") |
|
compile project(":spring-jdbc") |
|
compile("org.hibernate:hibernate-core:4.1.0.Final", optional) |
|
compile("org.hibernate:hibernate-entitymanager:4.1.0.Final", optional) |
|
compile(project(":spring-web")) { dep -> |
|
optional dep |
|
exclude group: 'javax.persistence', module: 'persistence-api' |
|
} |
|
compile("javax.servlet:servlet-api:2.5", optional) |
|
} |
|
} |
|
|
|
project('spring-webmvc') { |
|
description = 'Spring Web MVC' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-expression") |
|
compile project(":spring-beans") |
|
compile project(":spring-web") |
|
compile project(":spring-context") |
|
compile(project(":spring-context-support"), optional) // for Velocity support |
|
compile(project(":spring-oxm"), optional) // for MarshallingView |
|
compile("org.apache.tiles:tiles-api:2.1.2", optional) |
|
compile("org.apache.tiles:tiles-core:2.1.2", optional) |
|
compile("org.apache.tiles:tiles-jsp:2.1.2", optional) |
|
compile("org.apache.tiles:tiles-servlet:2.1.2", optional) |
|
compile("velocity-tools:velocity-tools-view:1.4", optional) |
|
compile("net.sourceforge.jexcelapi:jxl:2.6.3") { dep -> |
|
optional dep |
|
exclude group: 'log4j', module: 'log4j' |
|
} |
|
compile("org.apache.poi:poi:3.0.2-FINAL") { dep -> |
|
optional dep |
|
exclude group: 'log4j', module: 'log4j' |
|
} |
|
compile("javax.servlet:jstl:1.1.2", provided) |
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0 |
|
testCompile project(":spring-aop") |
|
testCompile("org.slf4j:slf4j-log4j12:1.6.1") { |
|
exclude group: 'log4j', module: 'log4j' |
|
} |
|
testCompile "rhino:js:1.7R1" |
|
testCompile "xmlunit:xmlunit:1.2" |
|
testCompile("dom4j:dom4j:1.6.1") { |
|
exclude group: 'xml-apis', module: 'xml-apis' |
|
} |
|
testCompile("jaxen:jaxen:1.1.1") { |
|
exclude group: 'xml-apis', module: 'xml-apis' |
|
exclude group: 'xom', module: 'xom' |
|
exclude group: 'xerces', module: 'xercesImpl' |
|
} |
|
} |
|
|
|
// pick up DispatcherServlet.properties in src/main |
|
sourceSets.main.resources.srcDirs += 'src/main/java' |
|
} |
|
|
|
project('spring-webmvc-tiles3') { |
|
description = 'Spring Framework Tiles3 Integration' |
|
ext.mergeIntoProject = project(':spring-webmvc') |
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle" |
|
dependencies { |
|
compile project(":spring-context") |
|
compile project(":spring-webmvc").sourceSets.main.output |
|
compile("javax.el:el-api:1.0", provided) |
|
compile("javax.servlet:jstl:1.1.2", provided) |
|
compile("javax.servlet.jsp:jsp-api:2.1", provided) |
|
compile("org.apache.tiles:tiles-request-api:1.0.1", optional) |
|
compile("org.apache.tiles:tiles-request-servlet-wildcard:1.0.1", optional) |
|
compile("org.apache.tiles:tiles-api:3.0.1", optional) |
|
compile("org.apache.tiles:tiles-core:3.0.1", optional) |
|
compile("org.apache.tiles:tiles-servlet:3.0.1", optional) |
|
compile("org.apache.tiles:tiles-jsp:3.0.1", optional) |
|
compile("org.apache.tiles:tiles-el:3.0.1", optional) |
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0 |
|
testCompile project(":spring-web").sourceSets*.output // mock request & response |
|
} |
|
} |
|
|
|
project('spring-webmvc-portlet') { |
|
description = 'Spring Web Portlet' |
|
dependencies { |
|
compile("javax.servlet:servlet-api:2.5", provided) |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile project(":spring-context") |
|
compile project(":spring-web") |
|
compile project(":spring-webmvc") |
|
} |
|
|
|
// pick up DispatcherPortlet.properties in src/main |
|
sourceSets.main.resources.srcDirs += 'src/main/java' |
|
} |
|
|
|
project('spring-test') { |
|
description = 'Spring TestContext Framework' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile(project(":spring-beans"), optional) |
|
compile(project(":spring-context"), optional) |
|
compile(project(":spring-jdbc"), optional) |
|
compile(project(":spring-tx"), optional) |
|
compile(project(":spring-orm"), optional) |
|
compile(project(":spring-web"), optional) |
|
compile(project(":spring-webmvc"), optional) |
|
compile(project(":spring-webmvc-portlet"), optional) |
|
compile("junit:junit-dep:4.10") { dep -> |
|
optional dep |
|
// We already have hamcrest-all as a global testCompile dependency. |
|
exclude group: 'org.hamcrest', module: 'hamcrest-core' |
|
} |
|
compile("org.testng:testng:6.5.2") { dep -> |
|
optional dep |
|
exclude group: 'junit', module: 'junit' |
|
// We already have hamcrest-all as a global testCompile dependency. |
|
exclude group: 'org.hamcrest', module: 'hamcrest-core' |
|
} |
|
compile("javax.servlet:servlet-api:2.5", optional) |
|
compile("javax.servlet.jsp:jsp-api:2.1", optional) |
|
compile("javax.portlet:portlet-api:2.0", optional) |
|
compile("javax.activation:activation:1.0", provided) |
|
testCompile "org.slf4j:slf4j-jcl:1.5.3" |
|
} |
|
} |
|
|
|
project('spring-test-mvc') { |
|
description = 'Spring Test MVC Framework' |
|
ext.mergeIntoProject = project(':spring-test') |
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle" |
|
dependencies { |
|
compile project(":spring-context") |
|
compile project(":spring-webmvc") |
|
compile project(":spring-test").sourceSets.main.output |
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) |
|
compile("org.hamcrest:hamcrest-core:1.3", optional) |
|
compile("com.jayway.jsonpath:json-path:0.8.1", optional) |
|
compile("xmlunit:xmlunit:1.2", optional) |
|
testCompile("org.slf4j:jcl-over-slf4j:1.6.1") |
|
testCompile("org.slf4j:slf4j-log4j12:1.6.1") { |
|
exclude group: 'log4j', module: 'log4j' |
|
} |
|
testCompile("log4j:log4j:1.2.15") { |
|
exclude group: 'javax.mail', module: 'mail' |
|
exclude group: 'javax.jms', module: 'jms' |
|
exclude group: 'com.sun.jdmk', module: 'jmxtools' |
|
exclude group: 'com.sun.jmx', module: 'jmxri' |
|
} |
|
testCompile "javax.servlet:jstl:1.2" |
|
testCompile "org.hibernate:hibernate-validator:4.2.0.Final" |
|
testCompile "org.codehaus.jackson:jackson-mapper-asl:1.4.2" |
|
testCompile project(":spring-oxm") |
|
testCompile "com.thoughtworks.xstream:xstream:1.3.1" |
|
testCompile "cglib:cglib-nodep:2.2" |
|
testCompile "rome:rome:1.0" |
|
testCompile "javax.xml.bind:jaxb-api:2.2.6" |
|
testCompile "org.easymock:easymockclassextension:2.3" |
|
testCompile("org.springframework.security:spring-security-core:3.1.2.RELEASE") { |
|
exclude group: 'org.springframework' |
|
} |
|
testCompile("org.springframework.security:spring-security-web:3.1.2.RELEASE") { |
|
exclude group: 'org.springframework' |
|
} |
|
testCompile("org.springframework.security:spring-security-config:3.1.2.RELEASE") { |
|
exclude group: 'org.springframework' |
|
} |
|
testCompile("org.springframework.hateoas:spring-hateoas:0.3.0.RELEASE") |
|
} |
|
} |
|
|
|
project('spring-struts') { |
|
description = 'Spring Struts' |
|
dependencies { |
|
compile project(":spring-core") |
|
compile project(":spring-beans") |
|
compile project(":spring-context") |
|
compile project(":spring-web") |
|
compile project(":spring-webmvc") |
|
compile "struts:struts:1.2.9" |
|
compile "commons-beanutils:commons-beanutils:1.7.0" |
|
compile("javax.servlet:servlet-api:2.5", provided) |
|
testCompile project(":spring-test") |
|
} |
|
} |
|
|
|
project('spring-aspects') { |
|
description = 'Spring Aspects' |
|
apply from: 'aspects.gradle' |
|
dependencies { |
|
compile(project(":spring-beans"), optional) // for @Configurable support |
|
compile(project(":spring-aop"), optional) // for @Async support |
|
compile(project(":spring-context"), optional) // for @Enable* support |
|
compile(project(":spring-context-support"), optional) // for JavaMail support |
|
compile(project(":spring-tx"), optional) // for JPA, @Transactional support |
|
compile(project(":spring-orm"), optional) // for JPA exception translation support |
|
aspects project(":spring-orm") |
|
ajc "org.aspectj:aspectjtools:${aspectjVersion}" |
|
compile "org.aspectj:aspectjrt:${aspectjVersion}" |
|
testCompile project(":spring-core") // for CodeStyleAspect |
|
compile project(":spring-beans") // for 'p' namespace visibility |
|
testCompile project(":spring-test") |
|
} |
|
eclipse.project { |
|
natures += 'org.eclipse.ajdt.ui.ajnature' |
|
buildCommands = [new org.gradle.plugins.ide.eclipse.model. |
|
BuildCommand('org.eclipse.ajdt.core.ajbuilder')] |
|
} |
|
} |
|
|
|
configure(rootProject) { |
|
description = 'Spring Framework' |
|
|
|
apply plugin: 'docbook-reference' |
|
apply from: "${gradleScriptDir}/jdiff.gradle" |
|
|
|
reference { |
|
sourceDir = file('src/reference/docbook') |
|
pdfFilename = 'spring-framework-reference.pdf' |
|
} |
|
|
|
// don't publish the default jar for the root project |
|
configurations.archives.artifacts.clear() |
|
|
|
dependencies { // for integration tests |
|
testCompile project(":spring-core") |
|
testCompile project(":spring-beans") |
|
testCompile project(":spring-aop") |
|
testCompile project(":spring-expression") |
|
testCompile project(":spring-context") |
|
testCompile project(":spring-tx") |
|
testCompile project(":spring-jdbc") |
|
testCompile project(":spring-test") |
|
testCompile project(":spring-web") |
|
testCompile project(":spring-webmvc-portlet") |
|
testCompile "org.hibernate:hibernate-core:4.1.0.Final" |
|
testCompile "javax.servlet:servlet-api:2.5" |
|
} |
|
|
|
task api(type: Javadoc) { |
|
group = 'Documentation' |
|
description = 'Generates aggregated Javadoc API documentation.' |
|
title = "${rootProject.description} ${version} API" |
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED |
|
options.author = true |
|
options.header = rootProject.description |
|
options.overview = 'src/api/overview.html' |
|
options.splitIndex = true |
|
options.links( |
|
'http://docs.jboss.org/jbossas/javadoc/4.0.5/connector' |
|
) |
|
source subprojects.collect { project -> |
|
project.sourceSets.main.allJava |
|
} |
|
destinationDir = new File(buildDir, "api") |
|
classpath = files(subprojects.collect { project -> |
|
project.sourceSets.main.compileClasspath |
|
}) |
|
maxMemory = '1024m' |
|
} |
|
|
|
task docsZip(type: Zip) { |
|
group = 'Distribution' |
|
baseName = 'spring-framework' |
|
classifier = 'docs' |
|
description = "Builds -${classifier} archive containing api and reference " + |
|
"for deployment at http://static.springframework.org/spring-framework/docs." |
|
|
|
from('src/dist') { |
|
include 'changelog.txt' |
|
} |
|
|
|
from (api) { |
|
into 'api' |
|
} |
|
|
|
from (reference) { |
|
into 'reference' |
|
} |
|
} |
|
|
|
task schemaZip(type: Zip) { |
|
group = 'Distribution' |
|
baseName = 'spring-framework' |
|
classifier = 'schema' |
|
description = "Builds -${classifier} archive containing all " + |
|
"XSDs for deployment at http://springframework.org/schema." |
|
|
|
subprojects.each { subproject -> |
|
def Properties schemas = new Properties(); |
|
|
|
subproject.sourceSets.main.resources.find { |
|
it.path.endsWith('META-INF/spring.schemas') |
|
}?.withInputStream { schemas.load(it) } |
|
|
|
for (def key : schemas.keySet()) { |
|
def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1') |
|
assert shortName != key |
|
File xsdFile = subproject.sourceSets.main.resources.find { |
|
it.path.endsWith(schemas.get(key)) |
|
} |
|
assert xsdFile != null |
|
into (shortName) { |
|
from xsdFile.path |
|
} |
|
} |
|
} |
|
} |
|
|
|
task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { |
|
group = 'Distribution' |
|
baseName = 'spring-framework' |
|
classifier = 'dist' |
|
description = "Builds -${classifier} archive, containing all jars and docs, " + |
|
"suitable for community download page." |
|
|
|
ext.baseDir = "${baseName}-${project.version}"; |
|
|
|
from('src/dist') { |
|
include 'readme.txt' |
|
include 'license.txt' |
|
include 'notice.txt' |
|
into "${baseDir}" |
|
expand(copyright: new Date().format('yyyy'), version: project.version) |
|
} |
|
|
|
from(zipTree(docsZip.archivePath)) { |
|
into "${baseDir}/docs" |
|
} |
|
|
|
from(zipTree(schemaZip.archivePath)) { |
|
into "${baseDir}/schema" |
|
} |
|
|
|
subprojects.each { subproject -> |
|
into ("${baseDir}/libs") { |
|
from subproject.jar |
|
if (subproject.tasks.findByPath('sourcesJar')) { |
|
from subproject.sourcesJar |
|
} |
|
if (subproject.tasks.findByPath('javadocJar')) { |
|
from subproject.javadocJar |
|
} |
|
} |
|
} |
|
} |
|
|
|
// Create an distribution that contains all dependencies (required and optional). |
|
// Not published by default; only for use when building from source. |
|
task depsZip(type: Zip, dependsOn: distZip) { zipTask -> |
|
group = 'Distribution' |
|
baseName = 'spring-framework' |
|
classifier = 'dist-with-deps' |
|
description = "Builds -${classifier} archive, containing everything " + |
|
"in the -${distZip.classifier} archive plus all runtime dependencies." |
|
|
|
from zipTree(distZip.archivePath) |
|
|
|
gradle.taskGraph.whenReady { taskGraph -> |
|
if (taskGraph.hasTask(":${zipTask.name}")) { |
|
def projectNames = rootProject.subprojects*.name |
|
def artifacts = new HashSet() |
|
subprojects.each { subproject -> |
|
subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact -> |
|
def dependency = artifact.moduleVersion.id |
|
if (!projectNames.contains(dependency.name)) { |
|
artifacts << artifact.file |
|
} |
|
} |
|
} |
|
|
|
zipTask.from(artifacts) { |
|
into "${distZip.baseDir}/deps" |
|
} |
|
} |
|
} |
|
} |
|
|
|
artifacts { |
|
archives docsZip |
|
archives schemaZip |
|
archives distZip |
|
} |
|
|
|
task wrapper(type: Wrapper) { |
|
description = 'Generates gradlew[.bat] scripts' |
|
gradleVersion = '1.2' |
|
|
|
doLast() { |
|
def gradleOpts = "-XX:MaxPermSize=1024m -Xmx1024m" |
|
def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=256" |
|
File wrapperFile = file('gradlew') |
|
wrapperFile.text = wrapperFile.text.replace("DEFAULT_JVM_OPTS=", |
|
"GRADLE_OPTS=\"$gradleOpts \$GRADLE_OPTS\"\nDEFAULT_JVM_OPTS=") |
|
File wrapperBatFile = file('gradlew.bat') |
|
wrapperBatFile.text = wrapperBatFile.text.replace("set DEFAULT_JVM_OPTS=", |
|
"set GRADLE_OPTS=$gradleBatOpts %GRADLE_OPTS%\nset DEFAULT_JVM_OPTS=") |
|
} |
|
} |
|
}
|
|
|