Re-enabled the plugin and pointed it to the already existing template.mf. Polished up the template and make sure it refers to matching versions.
327 lines
9.5 KiB
Groovy
327 lines
9.5 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url 'http://repo.spring.io/plugins-release' }
|
|
}
|
|
dependencies {
|
|
classpath 'org.springframework.build.gradle:bundlor-plugin:0.1.2'
|
|
classpath 'io.spring.gradle:docbook-reference-plugin:0.3.0'
|
|
classpath('org.asciidoctor:asciidoctor-gradle-plugin:1.5.0')
|
|
classpath('org.asciidoctor:asciidoctorj:1.5.0')
|
|
classpath 'org.springframework.build.gradle:spring-io-plugin:0.0.3.RELEASE'
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
sharedResources
|
|
}
|
|
|
|
description = 'Spring Data GemFire'
|
|
group = 'org.springframework.data'
|
|
|
|
repositories {
|
|
maven { url "http://repo.spring.io/libs-snapshot" }
|
|
maven { url "http://repo.spring.io/plugins-release"}
|
|
}
|
|
|
|
apply plugin: "java"
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'idea'
|
|
apply from: "$rootDir/maven.gradle"
|
|
apply plugin: 'docbook-reference'
|
|
apply plugin: 'org.asciidoctor.gradle.asciidoctor'
|
|
apply plugin: 'bundlor'
|
|
|
|
//project.bundlor.bundleSymbolicName = "${bundleSymbolicName}"
|
|
|
|
if (project.hasProperty('platformVersion')) {
|
|
apply plugin: 'spring-io'
|
|
|
|
repositories {
|
|
maven { url "https://repo.spring.io/libs-snapshot" }
|
|
}
|
|
|
|
dependencies {
|
|
springIoVersions "io.spring.platform:platform-versions:${platformVersion}@properties"
|
|
}
|
|
}
|
|
|
|
[compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:-serial"]
|
|
|
|
tasks.withType(Test).all {
|
|
forkEvery = 1
|
|
systemProperties['gemfire.disableShutdownHook'] = 'true'
|
|
systemProperties['org.springframework.data.gemfire.test.GemfireTestRunner.nomock'] = System.getProperty('org.springframework.data.gemfire.test.GemfireTestRunner.nomock')
|
|
}
|
|
|
|
// Common dependencies
|
|
dependencies {
|
|
// Spring Framework
|
|
compile("org.springframework:spring-core:$springVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
compile("org.springframework:spring-aop:$springVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
compile("org.springframework:spring-context-support:$springVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
compile("org.springframework:spring-tx:$springVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
|
|
// Spring Data
|
|
compile("org.springframework.data:spring-data-commons:${springDataCommonsVersion}") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
|
|
// GemFire
|
|
compile("com.gemstone.gemfire:gemfire:$gemfireVersion")
|
|
runtime("antlr:antlr:$antlrVersion")
|
|
|
|
compile "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
compile "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
|
|
compile "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
|
|
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "org.slf4j:jcl-over-slf4j:$slf4jVersion"
|
|
|
|
// Testing
|
|
testCompile("org.springframework:spring-test:$springVersion") {
|
|
exclude group: "commons-logging", module: "commons-logging"
|
|
}
|
|
testCompile "junit:junit:$junitVersion"
|
|
testCompile "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
|
|
testCompile "javax.annotation:jsr250-api:1.0", optional
|
|
testRuntime "log4j:log4j:$log4jVersion"
|
|
testCompile "org.apache.derby:derbyLocale_zh_TW:10.9.1.0"
|
|
testRuntime "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
|
|
sharedResources "org.springframework.data.build:spring-data-build-resources:$springDataBuildVersion@zip"
|
|
}
|
|
|
|
sourceCompatibility = 1.6
|
|
targetCompatibility = 1.6
|
|
|
|
javadoc {
|
|
ext.srcDir = file("${projectDir}/docs/src/api")
|
|
destinationDir = file("${buildDir}/api")
|
|
ext.tmpDir = file("${buildDir}/api-work")
|
|
|
|
configure(options) {
|
|
stylesheetFile = file("${srcDir}/spring-javadoc.css")
|
|
overview = "${srcDir}/overview.html"
|
|
docFilesSubDirs = true
|
|
outputLevel = org.gradle.external.javadoc.JavadocOutputLevel.QUIET
|
|
breakIterator = true
|
|
showFromProtected()
|
|
groups = [
|
|
'Spring GemFire' : ['org.springframework.data.gemfire*'],
|
|
]
|
|
|
|
links = [
|
|
"http://static.springframework.org/spring/docs/3.1.x/javadoc-api",
|
|
"http://download.oracle.com/javase/6/docs/api",
|
|
"http://www.gemstone.com/docs/6.5.1/product/docs/japi/",
|
|
"http://asm.objectweb.org/asm223/javadoc/user",
|
|
"http://logging.apache.org/log4j/docs/api/",
|
|
"http://atinject.googlecode.com/svn/trunk/javadoc/"
|
|
]
|
|
|
|
exclude "org/springframework/data/gemfire/config/**"
|
|
}
|
|
|
|
title = "${rootProject.description} ${version} API"
|
|
}
|
|
|
|
jar {
|
|
|
|
dependsOn = [ 'bundlor' ]
|
|
|
|
manifest.attributes['Implementation-Title'] = 'spring-data-gemfire'
|
|
manifest.attributes['Implementation-Version'] = project.version
|
|
|
|
from("$rootDir/docs/src/info") {
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "META-INF"
|
|
expand(copyright: new Date().format('yyyy'), version: project.version)
|
|
}
|
|
}
|
|
|
|
bundlor {
|
|
manifestTemplate = file("template.mf").text
|
|
}
|
|
|
|
// Reference documentation
|
|
|
|
reference {
|
|
// Avoid copy with expansions
|
|
expandPlaceholders = '';
|
|
}
|
|
|
|
referencePdf {
|
|
dependsOn = [ 'asciidoctor' ]
|
|
sourceDir = asciidoctor.outputDir
|
|
}
|
|
|
|
asciidoctor {
|
|
dependsOn = [ 'extractSharedResources' ]
|
|
backends = [ 'html5', 'docbook' ]
|
|
options = [
|
|
doctype: 'book',
|
|
eruby: 'erubis',
|
|
attributes: [
|
|
linkcss: true,
|
|
copycss : "$buildDir/shared-resources/asciidoc/spring.css",
|
|
icons : 'font',
|
|
'source-highlighter': 'prettify',
|
|
sectanchors : true,
|
|
toclevels: '3',
|
|
sectids: false,
|
|
numbered: true,
|
|
version: project.version,
|
|
stylesheet: "spring.css",
|
|
]
|
|
]
|
|
}
|
|
|
|
task sourcesJar(type: Jar, dependsOn:classes) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
classifier = 'javadoc'
|
|
from javadoc
|
|
}
|
|
|
|
task docsZip(type: Zip) {
|
|
group = 'Distribution'
|
|
classifier = 'docs'
|
|
description = "Builds -${classifier} archive containing api and reference for deployment"
|
|
dependsOn = [ 'javadoc', 'asciidoctor', 'referencePdf' ]
|
|
|
|
from('docs/src/info') {
|
|
include 'changelog.txt'
|
|
}
|
|
|
|
from (javadoc) {
|
|
into 'api'
|
|
}
|
|
|
|
from (asciidoctor.outputDir) {
|
|
include "index.html"
|
|
include "spring.css"
|
|
into 'reference/html'
|
|
}
|
|
|
|
from (referencePdf.outputDir) {
|
|
into 'reference'
|
|
}
|
|
}
|
|
|
|
task schemaZip(type: Zip) {
|
|
group = 'Distribution'
|
|
classifier = 'schema'
|
|
description = "Builds -${classifier} archive containing all XSDs for deployment"
|
|
|
|
def Properties schemas = new Properties();
|
|
|
|
sourceSets.main.resources.find {
|
|
it.path.endsWith('META-INF' + File.separator + 'spring.schemas')
|
|
}?.withInputStream { schemas.load(it) }
|
|
|
|
for (def key : schemas.keySet()) {
|
|
def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
|
|
def alias = key.replaceAll(/http.*schema.(.*).(spring-.*)/, '$2')
|
|
assert shortName != key
|
|
File xsdFile = sourceSets.main.resources.find {
|
|
it.path.replace('\\', '/').endsWith(schemas.get(key))
|
|
}
|
|
assert xsdFile != null
|
|
|
|
into (shortName) {
|
|
from xsdFile.path
|
|
rename { String fileName -> alias }
|
|
}
|
|
}
|
|
}
|
|
|
|
task distZip(type: Zip, dependsOn: [jar, docsZip, schemaZip, sourcesJar, javadocJar]) {
|
|
group = 'Distribution'
|
|
classifier = 'dist'
|
|
description = "Builds -${classifier} archive, containing all jars and docs, " +
|
|
"suitable for community download page."
|
|
|
|
ext.zipRootDir = "${project.name}-${project.version}"
|
|
|
|
into (zipRootDir) {
|
|
from('docs/src/info') {
|
|
include 'readme.txt'
|
|
include 'license.txt'
|
|
include 'notice.txt'
|
|
expand(copyright: new Date().format('yyyy'), version: project.version)
|
|
}
|
|
|
|
from('samples/') {
|
|
into 'samples'
|
|
exclude '**/build/**'
|
|
exclude '**/target/**'
|
|
exclude '**/.gradle/**'
|
|
exclude '**/vf*.*'
|
|
exclude '**/vf*.txt'
|
|
}
|
|
|
|
from(zipTree(docsZip.archivePath)) {
|
|
into "docs"
|
|
}
|
|
|
|
from(zipTree(schemaZip.archivePath)) {
|
|
into "schema"
|
|
}
|
|
into ("dist") {
|
|
from rootProject.collect { project -> project.libsDir }
|
|
}
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
|
|
archives docsZip
|
|
archives schemaZip
|
|
archives distZip
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
description = "Generates gradlew[.bat] scripts"
|
|
gradleVersion = "1.9"
|
|
|
|
doLast() {
|
|
def gradleOpts = "-XX:MaxPermSize=1024m -Xms256m -Xmx1024m"
|
|
def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=1024m"
|
|
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=")
|
|
}
|
|
}
|
|
|
|
task extractSharedResources(type: Copy) {
|
|
|
|
from { // use of closure defers evaluation until execution time
|
|
configurations.sharedResources.collect { zipTree(it) }
|
|
}
|
|
|
|
into "$buildDir/shared-resources"
|
|
}
|
|
|
|
assemble.dependsOn = ['jar', 'sourcesJar']
|
|
defaultTasks 'build'
|