Prior to this change, license.txt and notice.txt files were duplicated across every subproject in their respective src/main/resources/META-INF directories. This commit centralizes these files under the root project at src/dist, along with the changelog and readme files. The definition of the 'jar' task has been been extended to include the license and notice files in module jars as they are created. The directory is named src/dist because these files are all related to distribution - the readme is different than the one you see at the root of the source tree - the intended audience is for users who download the spring-framework distribution zip. A task to create that distribution zip will be added in subsequent commits.
429 lines
17 KiB
Groovy
429 lines
17 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url 'https://repo.springsource.org/plugins-snapshot' }
|
|
}
|
|
dependencies {
|
|
classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.1.2-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
configure(allprojects) {
|
|
apply plugin: 'java'
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'idea'
|
|
|
|
sourceCompatibility=1.5
|
|
targetCompatibility=1.5
|
|
|
|
slf4jLog4jVersion = '1.5.10'
|
|
|
|
[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" }
|
|
}
|
|
|
|
dependencies {
|
|
testCompile "org.junit:com.springsource.org.junit:4.9.0"
|
|
testCompile "org.easymock:easymock:2.5.1"
|
|
testCompile "org.hamcrest:hamcrest-all:1.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(rootProject) {
|
|
description = 'Spring Framework'
|
|
|
|
apply plugin: 'docbook-reference'
|
|
|
|
reference {
|
|
sourceDir = file('src/reference/docbook')
|
|
}
|
|
|
|
// don't publish the default jar for the root project
|
|
configurations.archives.artifacts.clear()
|
|
|
|
dependencies { // for integration tests
|
|
testCompile project(":spring-test")
|
|
testCompile project(":spring-webmvc-portlet")
|
|
testCompile "org.hibernate:hibernate-core:4.0.0.CR7"
|
|
testCompile "javax.servlet:servlet-api:2.5"
|
|
}
|
|
}
|
|
|
|
configure(subprojects) {
|
|
apply plugin: 'maven'
|
|
group = 'org.springframework'
|
|
|
|
jar {
|
|
from("${rootProject.projectDir}/src/dist") {
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "META-INF"
|
|
expand(copyright: new Date().format('yyyy'), version: project.version)
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(subprojects - project(":spring-asm")) {
|
|
|
|
task sourcesJar(type: Jar, dependsOn:classes) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allSource
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
}
|
|
}
|
|
|
|
|
|
project('spring-core') {
|
|
description = 'Spring Core'
|
|
dependencies {
|
|
// depend on spring-asm project in order to have it show up as a
|
|
// <dependency> in the generated pom
|
|
compile project(":spring-asm")
|
|
// depend directly on the spring-asm jar to avoid errors in Eclipse/STS
|
|
compile files(project(":spring-asm").jar.archivePath) {
|
|
builtBy project(":spring-asm").jar
|
|
}
|
|
compile "commons-logging:commons-logging:1.1.1"
|
|
compile("org.aspectj:aspectjweaver:1.6.8") { optional = true }
|
|
compile("net.sf.jopt-simple:jopt-simple:3.0") { optional = true
|
|
exclude group: 'org.apache.ant', module: 'ant'
|
|
}
|
|
compile("log4j:log4j:1.2.15") { optional = true
|
|
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"
|
|
}
|
|
}
|
|
|
|
project('spring-beans') {
|
|
description = 'Spring Beans'
|
|
dependencies {
|
|
compile project(":spring-core")
|
|
compile("javax.el:el-api:1.0") { provided = true }
|
|
compile("javax.inject:javax.inject:1") { provided = true }
|
|
compile("cglib:cglib-nodep:2.2") { optional = true }
|
|
}
|
|
}
|
|
|
|
project('spring-aop') {
|
|
description = 'Spring AOP'
|
|
dependencies {
|
|
compile project(":spring-beans")
|
|
compile("com.jamonapi:jamon:2.4") { optional = true }
|
|
compile("aopalliance:aopalliance:1.0") { optional = true }
|
|
compile("commons-pool:commons-pool:1.5.3") { optional = true }
|
|
}
|
|
}
|
|
|
|
project('spring-expression') {
|
|
description = 'Spring Expression Language (SpEL)'
|
|
dependencies {
|
|
compile project(":spring-core")
|
|
}
|
|
}
|
|
|
|
project('spring-instrument') {
|
|
description = 'Spring Instrument'
|
|
dependencies {
|
|
compile project(":spring-core")
|
|
}
|
|
}
|
|
|
|
project('spring-instrument-tomcat') {
|
|
description = 'Spring Instrument Tomcat'
|
|
dependencies {
|
|
compile("org.apache.tomcat:catalina:6.0.16") { provided = true }
|
|
}
|
|
}
|
|
|
|
project('spring-context') {
|
|
description = 'Spring Context'
|
|
dependencies {
|
|
compile project(":spring-aop")
|
|
compile project(":spring-expression")
|
|
compile project(":spring-instrument")
|
|
compile("backport-util-concurrent:backport-util-concurrent:3.0") { optional = true }
|
|
compile("javax.annotation:jsr250-api:1.0") { optional = true }
|
|
compile("javax.ejb:com.springsource.javax.ejb:3.0.0") { optional = true }
|
|
compile("javax.inject:javax.inject:1") { optional = true }
|
|
compile("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1") { optional = true }
|
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1") { optional = true }
|
|
compile("javax.persistence:persistence-api:1.0") { optional = true }
|
|
compile("javax.validation:validation-api:1.0.0.GA") { optional = true }
|
|
compile("javax.xml.ws:jaxws-api:2.1-1") { optional = true
|
|
exclude group: 'javax.jws', module: 'jsr181'
|
|
}
|
|
compile("org.beanshell:bsh:2.0b4") { optional = true }
|
|
compile("org.codehaus.groovy:groovy-all:1.6.3") { optional = true }
|
|
compile("org.jruby:jruby:1.4.0") { optional = true }
|
|
compile("org.hibernate:hibernate-validator:4.2.0.Final") { optional = true }
|
|
compile("joda-time:joda-time:1.6") { optional = true }
|
|
compile("net.sf.ehcache:ehcache-core:2.0.0") { optional = true }
|
|
compile("org.codehaus.jsr166-mirror:jsr166:1.7.0") { provided = true }
|
|
testCompile "commons-dbcp:commons-dbcp:1.2.2"
|
|
testCompile("javax.xml:jaxrpc-api:1.1") { optional = true }
|
|
testCompile("javax.inject:com.springsource.org.atinject.tck:1.0.0")
|
|
}
|
|
}
|
|
|
|
project('spring-tx') {
|
|
description = 'Spring Transaction'
|
|
dependencies {
|
|
compile project(":spring-context")
|
|
compile("com.ibm.websphere:com.springsource.com.ibm.websphere.uow:6.0.2.17") { provided = true }
|
|
compile("javax.resource:com.springsource.javax.resource:1.5.0") { optional = true }
|
|
compile "aopalliance:aopalliance:1.0" // NOT optional, as opposed to in :spring-aop
|
|
testCompile "org.easymock:easymockclassextension:2.3"
|
|
}
|
|
}
|
|
|
|
project('spring-oxm') {
|
|
description = 'Spring Object/XML Marshalling'
|
|
dependencies {
|
|
compile project(":spring-context")
|
|
compile "commons-lang:commons-lang:2.5"
|
|
compile("com.thoughtworks.xstream:xstream:1.3.1") { optional = true }
|
|
compile("com.sun.xml.bind:jaxb-impl:2.1.7") { optional = true }
|
|
compile("org.jibx:jibx-run:1.1.5") { optional = true }
|
|
compile("org.apache.xmlbeans:xmlbeans:2.4.0") { optional = true }
|
|
compile("org.codehaus.castor:castor-xml:1.3.2") { optional = true }
|
|
testCompile "org.codehaus.jettison:jettison:1.0.1"
|
|
testCompile "xmlunit:xmlunit:1.2"
|
|
testCompile "xmlpull:xmlpull:1.1.3.4a"
|
|
// this is a workaround until we have xjc/etc generation plugged in
|
|
// in order for this to work, you must FIRST run `ant test` within the
|
|
// .oxm module. that will create/populate the target/test-classes dir
|
|
testCompile(files("target/test-classes"))
|
|
}
|
|
}
|
|
|
|
project('spring-jms') {
|
|
description = 'Spring JMS'
|
|
dependencies {
|
|
compile project(":spring-oxm")
|
|
compile project(":spring-tx")
|
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2") { optional = true }
|
|
}
|
|
}
|
|
|
|
project('spring-jdbc') {
|
|
description = 'Spring JDBC'
|
|
dependencies {
|
|
compile project(":spring-tx")
|
|
compile("c3p0:c3p0:0.9.1.2") { optional = true }
|
|
compile("hsqldb:hsqldb:1.8.0.7") { optional = true }
|
|
compile("com.h2database:h2:1.0.71") { optional = true }
|
|
compile("org.apache.derby:com.springsource.org.apache.derby:10.5.1000001.764942") { optional = true }
|
|
compile("org.apache.derby:com.springsource.org.apache.derby.client:10.5.1000001.764942") { optional = true }
|
|
}
|
|
}
|
|
|
|
project('spring-context-support') {
|
|
description = 'Spring Context Support'
|
|
dependencies {
|
|
compile project(":spring-jdbc")
|
|
compile("com.bea.commonj:com.springsource.commonj:1.1.0") { optional = true }
|
|
compile("opensymphony:quartz:1.6.2") { optional = true }
|
|
compile("javax.mail:mail:1.4") { optional = true }
|
|
compile("velocity:velocity:1.5") { optional = true }
|
|
compile("commons-collections:commons-collections:3.2") { optional = true }
|
|
compile("org.freemarker:freemarker:2.3.15") { optional = true }
|
|
compile("jasperreports:jasperreports:2.0.5") { transitive = false; optional = true }
|
|
compile("commons-digester:commons-digester:1.8.1") { optional = true }
|
|
compile("commons-beanutils:commons-beanutils:1.8.0") { optional = true }
|
|
compile("com.lowagie:itext:2.0.8") { optional = true }
|
|
testCompile "hsqldb:hsqldb:1.8.0.10"
|
|
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-oxm")
|
|
compile("com.caucho:com.springsource.com.caucho:3.2.1") { optional = true }
|
|
compile("rome:rome:1.0") { optional = true }
|
|
compile("javax.el:el-api:1.0") { optional = true } // as opposed to 'provided' in spring-core
|
|
compile("javax.faces:com.springsource.javax.faces:1.2.0.08") { optional = true }
|
|
compile("javax.portlet:portlet-api:2.0") { provided = true }
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.8") { provided = true } // servlet-api 3.0
|
|
compile("javax.servlet.jsp:jsp-api:2.1") { provided = true }
|
|
compile("javax.xml.soap:saaj-api:1.3") { provided = true }
|
|
compile("axis:axis:1.4") { optional = true }
|
|
compile("commons-fileupload:commons-fileupload:1.2") { optional = true }
|
|
runtime("commons-io:commons-io:1.3") { optional = true }
|
|
compile("commons-httpclient:commons-httpclient:3.1") { optional = true }
|
|
compile("org.apache.httpcomponents:httpclient:4.1.1") { optional = true }
|
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2") { optional = true }
|
|
compile("taglibs:standard:1.1.2") { optional = true }
|
|
compile("org.mortbay.jetty:jetty:6.1.9") { optional = true
|
|
exclude group: 'org.mortbay.jetty', module: 'servlet-api-2.5'
|
|
}
|
|
compile("com.sun.syndication:com.springsource.com.sun.syndication:1.0.0") { optional = true }
|
|
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 {
|
|
compile("org.hibernate:com.springsource.org.hibernate:3.3.1.GA") { optional = true } // for orm.hibernate3
|
|
compile("org.hibernate:hibernate-cglib-repack:2.1_3") { optional = true }
|
|
compile("org.hibernate:hibernate-annotations:3.4.0.GA") { optional = true }
|
|
//compile("javax.persistence:persistence-api:1.0") { optional = true }
|
|
compile("org.hibernate:hibernate-entitymanager:4.0.0.CR4") { optional = true }
|
|
compile("org.apache.openjpa:openjpa:1.1.0") { optional = true }
|
|
compile("org.eclipse.persistence:com.springsource.org.eclipse.persistence:1.0.1") { optional = true }
|
|
compile("org.eclipse.persistence:com.springsource.org.eclipse.persistence.jpa:1.0.1") { optional = true }
|
|
compile("com.oracle.toplink.essentials:com.springsource.oracle.toplink.essentials:2.0.0.b41-beta2") { optional = true }
|
|
compile("javax.jdo:jdo-api:3.0") { optional = true }
|
|
compile("org.apache.ibatis:ibatis-sqlmap:2.3.4.726") { optional = true }
|
|
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:com.springsource.org.eclipse.persistence.asm:1.0.1"
|
|
testCompile "org.eclipse.persistence:com.springsource.org.eclipse.persistence.antlr:1.0.1"
|
|
testCompile "org.hibernate:com.springsource.org.hibernate:3.3.1.GA" // for orm.hibernate3
|
|
compile(project(":spring-web")) {
|
|
exclude group: 'javax.persistence', module: 'persistence-api'
|
|
}
|
|
compile project(":spring-jdbc")
|
|
compile("org.hibernate:hibernate-core:4.0.0.CR7") { optional = true }
|
|
}
|
|
}
|
|
|
|
project('spring-webmvc') {
|
|
description = 'Spring Web MVC'
|
|
dependencies {
|
|
compile project(":spring-web")
|
|
compile project(":spring-orm")
|
|
compile project(":spring-context-support")
|
|
compile("org.apache.tiles:tiles-api:2.1.2") { optional = true }
|
|
compile("org.apache.tiles:tiles-core:2.1.2") { optional = true }
|
|
compile("org.apache.tiles:tiles-jsp:2.1.2") { optional = true }
|
|
compile("org.apache.tiles:tiles-servlet:2.1.2") { optional = true }
|
|
compile("velocity-tools:velocity-tools-view:1.4") { optional = true }
|
|
compile("net.sourceforge.jexcelapi:jxl:2.6.3") { optional = true
|
|
exclude group: 'log4j', module: 'log4j'
|
|
}
|
|
compile("org.apache.poi:poi:3.0.2-FINAL") { optional = true
|
|
exclude group: 'log4j', module: 'log4j'
|
|
}
|
|
compile("javax.servlet:jstl:1.1.2") { provided = true }
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.8") { provided = true } // servlet-api 3.0
|
|
testCompile("org.slf4j:slf4j-log4j12:${slf4jLog4jVersion}") {
|
|
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-portlet') {
|
|
description = 'Spring Web Portlet'
|
|
dependencies {
|
|
compile("javax.servlet:servlet-api:2.5") { provided = true }
|
|
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-webmvc-portlet")
|
|
compile("javax.activation:activation:1.0") { provided = true }
|
|
compile("org.testng:testng:5.10:jdk15") { optional = true }
|
|
compile("org.junit:com.springsource.org.junit:4.9.0") { optional = true }
|
|
compile("javax.servlet:servlet-api:2.5") { provided = true }
|
|
testCompile "org.slf4j:slf4j-jcl:1.5.3"
|
|
}
|
|
}
|
|
|
|
project('spring-struts') {
|
|
description = 'Spring Struts'
|
|
dependencies {
|
|
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 = true }
|
|
testCompile project(":spring-test")
|
|
}
|
|
}
|
|
|
|
project('spring-aspects') {
|
|
description = 'Spring Aspects'
|
|
apply from: 'aspectJ.gradle'
|
|
compileJava.dependsOn project(":spring-orm").jar
|
|
dependencies {
|
|
aspects project(":spring-orm")
|
|
ajc "org.aspectj:aspectjtools:1.6.8"
|
|
compile "org.aspectj:aspectjrt:1.6.8"
|
|
testCompile project(":spring-test")
|
|
}
|
|
}
|
|
|
|
task apidocs(type: Javadoc) {
|
|
subprojects.each { project ->
|
|
source project.sourceSets.main.allJava
|
|
}
|
|
subprojects.each { subproject ->
|
|
if(classpath) {
|
|
classpath += subproject.sourceSets.main.classes + subproject.sourceSets.main.compileClasspath
|
|
}
|
|
else {
|
|
classpath = subproject.sourceSets.main.classes + subproject.sourceSets.main.compileClasspath
|
|
}
|
|
}
|
|
destinationDir = file('build/docs/javadoc')
|
|
maxMemory = '1024m'
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
description = 'Generates gradlew[.bat] scripts'
|
|
gradleVersion = '1.0-milestone-8'
|
|
distributionUrl = 'http://repo.gradle.org/gradle/distributions-snapshots/gradle-1.0-milestone-8-20120112000036+0100-bin.zip'
|
|
jarFile = '.wrapper/gradle-wrapper.jar'
|
|
}
|
|
|