buildscript { repositories { maven { url "http://repo.spring.io/plugins-release" } } dependencies { classpath("org.springframework.build.gradle:propdeps-plugin:0.0.7") classpath("io.spring.gradle:spring-io-plugin:0.0.4.RELEASE") classpath("io.spring.gradle:docbook-reference-plugin:0.3.1") classpath("me.champeau.gradle:gradle-javadoc-hotfix-plugin:0.1") } } configure(allprojects) { group = "org.springframework.webflow" apply plugin: "propdeps" apply plugin: "java" apply from: "${rootProject.projectDir}/ide.gradle" apply plugin: "javadocHotfix" } configure(subprojects.findAll {it.name != "spring-build-src"}) { subproject -> apply plugin: "merge" apply from: "${rootProject.projectDir}/publish-maven.gradle" sourceCompatibility=1.6 targetCompatibility=1.6 [compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:none"] sourceSets.test.resources.srcDirs = ["src/main/java", "src/test/resources", "src/test/java"] repositories { maven { url "http://repo.spring.io/libs-release" } maven { url "http://repo.spring.io/libs-snapshot" } } jar { 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) } } } configure(subprojects.findAll { it.name != "spring-build-src" && it.name != "spring-js-resources"}) { subproject -> if (project.hasProperty('platformVersion')) { apply plugin: 'spring-io' repositories { maven { url "https://repo.spring.io/libs-snapshot" } } dependencyManagement { springIoTestRuntime { imports { mavenBom "io.spring.platform:platform-bom:${platformVersion}" } } } } dependencies { testCompile("junit:junit-dep:4.10") testCompile("org.hamcrest:hamcrest-all:1.3") testCompile("org.easymock:easymock:3.1") } subproject.ext { springVersion = "4.2.0.RELEASE" springSecurityVersion = "4.0.1.RELEASE" slf4jVersion = "1.7.5" log4jVersion = "1.2.17" } tasks.withType(Test).all { systemProperty("java.awt.headless", "true") include "**/*Tests.class" if (name ==~ /springIo.*/) { exclude '**/tiles2/**' } } javadoc { options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED options.author = true options.header = project.name } task sourcesJar(type: Jar, dependsOn:classes) { classifier = "sources" from sourceSets.main.allJava } task javadocJar(type: Jar) { classifier = "javadoc" from javadoc } artifacts { archives sourcesJar archives javadocJar } } project("spring-build-src") { description = "Exposes gradle buildSrc for IDE support" apply plugin: "groovy" dependencies { compile gradleApi() compile localGroovy() } configurations.archives.artifacts.clear() } project("spring-binding") { description = "Spring Binding" dependencies { compile("commons-logging:commons-logging:1.1.1") compile("opensymphony:ognl:2.6.11") compile("org.springframework:spring-beans:$springVersion") compile("org.springframework:spring-context:$springVersion") compile("org.springframework:spring-core:$springVersion") compile("org.springframework:spring-expression:$springVersion") provided("javax.el:javax.el-api:2.2.4") testCompile("log4j:log4j:$log4jVersion") { 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("org.apache.tomcat:tomcat-jasper-el:7.0.39") } } project("spring-js-resources") { description = "Spring JS Resources" apply from: "spring-js-resources.gradle" jar { dependsOn prepareResources } } project("spring-js") { description = "Spring JS" dependencies { compile(project(":spring-js-resources")) compile("commons-logging:commons-logging:1.1.1") compile("org.springframework:spring-beans:$springVersion") compile("org.springframework:spring-context:$springVersion") compile("org.springframework:spring-core:$springVersion") compile("org.springframework:spring-web:$springVersion") compile("org.springframework:spring-webmvc:$springVersion") provided("javax.servlet:javax.servlet-api:3.0.1") optional("org.apache.tiles:tiles-api:2.2.2") optional("org.apache.tiles:tiles-core:2.2.2") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-jsp:2.2.2") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-servlet:2.2.2") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } testCompile("javax.servlet:jstl:1.2") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } testCompile("log4j:log4j:$log4jVersion") { 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("org.slf4j:jcl-over-slf4j:$slf4jVersion") testCompile("org.slf4j:slf4j-api:$slf4jVersion") testCompile("org.springframework:spring-test:$springVersion") } } project("spring-js-tiles3") { description = "Spring JS Tiles 3 Integration" merge.into = project(":spring-js") dependencies { compile("commons-logging:commons-logging:1.1.1") compile("org.springframework:spring-core:$springVersion") compile("org.springframework:spring-webmvc:$springVersion") optional("javax.el:javax.el-api:2.2.4") optional("javax.servlet:javax.servlet-api:3.0.1") optional("javax.servlet.jsp:javax.servlet.jsp-api:2.2.1") optional("org.apache.tiles:tiles-request-api:1.0.1") optional("org.apache.tiles:tiles-api:3.0.1") optional("org.apache.tiles:tiles-core:3.0.1") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-servlet:3.0.1") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-jsp:3.0.1") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-el:3.0.1") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tiles:tiles-extras:3.0.1") { exclude group: "org.slf4j", module: "jcl-over-slf4j" exclude group: "org.springframework", module: "spring-web" exclude group: "ognl", module: "ognl" } testCompile("javax.servlet:jstl:1.2") testCompile("org.slf4j:jcl-over-slf4j:$slf4jVersion") testCompile("org.slf4j:slf4j-api:$slf4jVersion") testCompile("org.springframework:spring-test:$springVersion") } } project("spring-webflow") { description = "Spring Web Flow" dependencies { compile(project(":spring-binding")) compile(project(":spring-js")) compile("commons-logging:commons-logging:1.1.1") compile("opensymphony:ognl:2.6.11") compile("org.springframework:spring-beans:$springVersion") compile("org.springframework:spring-context:$springVersion") compile("org.springframework:spring-core:$springVersion") compile("org.springframework:spring-expression:$springVersion") compile("org.springframework:spring-web:$springVersion") compile("org.springframework:spring-webmvc:$springVersion") provided("javax.el:javax.el-api:2.2.4") provided("javax.servlet:javax.servlet-api:3.0.1") provided("javax.portlet:portlet-api:2.0") provided("junit:junit:3.8.2") provided("org.eclipse.persistence:javax.persistence:2.0.0") optional("org.hibernate:hibernate-core:4.2.8.Final") { exclude group: "org.slf4j", module: "slf4j-api" } optional("org.slf4j:slf4j-api:$slf4jVersion") optional("org.springframework.security:spring-security-core:$springSecurityVersion") optional("org.springframework:spring-orm:$springVersion") optional("org.springframework:spring-tx:$springVersion") optional("org.springframework:spring-webmvc-portlet:$springVersion") testCompile("javax.validation:validation-api:1.0.0.GA") testCompile("org.hibernate:hibernate-core:4.2.10.Final") testCompile("org.hibernate:hibernate-entitymanager:4.2.10.Final") testCompile("org.hibernate:hibernate-validator:4.3.1.Final") testCompile("org.apache.tomcat:tomcat-jasper-el:7.0.39") testCompile("org.hsqldb:hsqldb:2.3.1") testCompile("org.springframework:spring-aop:$springVersion") testCompile("org.springframework:spring-jdbc:$springVersion") testCompile("org.springframework:spring-test:$springVersion") } } project("spring-faces") { description = "Spring Faces" dependencies { compile(project(":spring-binding")) compile(project(":spring-webflow")) compile("commons-logging:commons-logging:1.1.1") compile("org.springframework:spring-beans:$springVersion") compile("org.springframework:spring-context:$springVersion") compile("org.springframework:spring-core:$springVersion") compile("org.springframework:spring-expression:$springVersion") compile("org.springframework:spring-web:$springVersion") compile("org.springframework:spring-webmvc:$springVersion") provided("javax.el:javax.el-api:2.2.4") provided("javax.servlet:javax.servlet-api:3.0.1") provided("javax.portlet:portlet-api:2.0") provided("com.sun.faces:jsf-api:2.2.10") provided("com.sun.faces:jsf-impl:2.2.10") provided("org.apache.myfaces.core:myfaces-impl:2.1.14") optional("com.sun.facelets:jsf-facelets:1.1.14") optional("org.springframework.security:spring-security-core:$springSecurityVersion") optional("org.springframework.security:spring-security-web:$springSecurityVersion") optional("org.springframework.security:spring-security-taglibs:$springSecurityVersion") optional("org.springframework:spring-webmvc-portlet:$springVersion") testCompile("log4j:log4j:$log4jVersion") { 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("org.apache.myfaces.test:myfaces-test22:1.0.6") testCompile("org.apache.tomcat:tomcat-jasper-el:7.0.39") testCompile("org.slf4j:jcl-over-slf4j:$slf4jVersion") testCompile("org.slf4j:slf4j-log4j12:$slf4jVersion") { exclude group: "log4j", module: "log4j" } testCompile("org.springframework:spring-test:$springVersion") } } configure(rootProject) { description = "Spring Web Flow" apply plugin: "docbook-reference" reference { sourceDir = file("src/reference") pdfFilename = "spring-webflow-reference.pdf" } // don"t publish the default jar for the root project configurations.archives.artifacts.clear() artifacts { } 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" 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-webflow" classifier = "docs" description = "Builds -${classifier} archive containing api and reference " + "for deployment at static.springframework.org/spring-webflow/docs." from (api) { into "api" } from (reference) { into "reference" } } task schemaZip(type: Zip) { group = "Distribution" baseName = "spring-webflow" classifier = "schema" description = "Builds -${classifier} archive containing all " + "XSDs for deployment at static.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.allSource.find { it.path.endsWith(schemas.get(key)) } assert xsdFile != null into (shortName) { from xsdFile.path } } } project(":spring-webflow").sourceSets.main.resources.matching { include '**/engine/model/builder/xml/*.xsd' }.each { File file -> into ('webflow') { from file.path } } } task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { group = "Distribution" baseName = "spring-webflow" classifier = "dist" description = "Builds -${classifier} archive, containing all jars and docs, " + "suitable for community download page." def baseDir = "${baseName}-${project.version}"; from("src/dist") { include "notice.txt" into "${baseDir}" expand(copyright: new Date().format("yyyy"), version: project.version) } from("src/dist") { include "readme.txt" include "license.txt" into "${baseDir}" } from(zipTree(docsZip.archivePath)) { into "${baseDir}/docs" } from(zipTree(schemaZip.archivePath)) { into "${baseDir}/schema" } subprojects.each { subproject -> into ("${baseDir}/libs") { if (subproject.name != "spring-build-src") { from subproject.jar if (subproject.tasks.findByPath("sourcesJar")) { from subproject.sourcesJar } if (subproject.tasks.findByPath("javadocJar")) { from subproject.javadocJar } } } } } artifacts { archives docsZip archives schemaZip archives distZip } task wrapper(type: Wrapper) { description = "Generates gradlew[.bat] scripts" gradleVersion = "1.11" doLast() { def gradleOpts = "-XX:MaxPermSize=1024m -Xmx1024m" def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=256m" 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=") } } }