Files
spring-framework/build.gradle
Chris Beams 2ca6d0b2be Centralize license, notice, etc in src/dist
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.
2012-01-31 14:32:15 +01:00

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'
}