210 lines
6.6 KiB
Groovy
210 lines
6.6 KiB
Groovy
// used for artifact names, building doc upload urls, etc.
|
|
description = 'Spring Shell'
|
|
abbreviation = 'SPSH'
|
|
|
|
apply plugin: 'base'
|
|
|
|
buildscript {
|
|
repositories {
|
|
add(new org.apache.ivy.plugins.resolver.URLResolver()) {
|
|
name = "GitHub"
|
|
addIvyPattern 'http://cloud.github.com/downloads/costin/gradle-stuff/[organization].[module]-[artifact]-[revision].[ext]'
|
|
addArtifactPattern 'http://cloud.github.com/downloads/costin/gradle-stuff/[organization].[module]-[revision].[ext]'
|
|
}
|
|
mavenCentral()
|
|
mavenLocal()
|
|
mavenRepo name: "springsource-org-release", urls: "http://repository.springsource.com/maven/bundles/release"
|
|
mavenRepo name: "springsource-org-external", urls: "http://repository.springsource.com/maven/bundles/external"
|
|
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'org.springframework:gradle-stuff:0.1-20110421'
|
|
classpath 'net.sf.docbook:docbook-xsl:1.75.2:ns-resources@zip'
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
group = 'org.springframework.shell'
|
|
version = "$springShellVersion"
|
|
|
|
releaseBuild = version.endsWith('RELEASE')
|
|
snapshotBuild = version.endsWith('SNAPSHOT')
|
|
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
// Public Spring artefacts
|
|
mavenRepo name: "springsource-org-release", urls: "http://repository.springsource.com/maven/bundles/release"
|
|
mavenRepo name: "spring-release", urls: "http://maven.springframework.org/release"
|
|
mavenRepo name: "spring-milestone", urls: "http://maven.springframework.org/milestone"
|
|
mavenRepo name: "spring-snapshot", urls: "http://maven.springframework.org/snapshot"
|
|
mavenRepo name: "sonatype-snapshot", urls: "http://oss.sonatype.org/content/repositories/snapshots"
|
|
mavenRepo name: "ext-snapshots", urls: "http://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo-ext/"
|
|
mavenRepo name: "data-nucleus", urls: "http://www.datanucleus.org/downloads/maven2/"
|
|
mavenRepo name: "conjars.org", urls: "http://conjars.org/repo"
|
|
}
|
|
}
|
|
|
|
apply plugin: "java"
|
|
apply plugin: "maven"
|
|
apply plugin: 'eclipse' // `gradle eclipse` to generate .classpath/.project
|
|
apply plugin: 'idea' // `gradle idea` to generate .ipr/.iml
|
|
apply plugin: 'docbook'
|
|
|
|
|
|
// Common dependencies
|
|
dependencies {
|
|
|
|
// Logging
|
|
runtime "log4j:log4j:$log4jVersion"
|
|
|
|
// Spring Framework
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.springframework:spring-context-support:$springVersion"
|
|
compile "commons-io:commons-io:$commonsioVersion"
|
|
compile "net.sourceforge.jline:jline:$jlineVersion"
|
|
compile "org.fusesource.jansi:jansi:$jansiVersion"
|
|
|
|
// needed for use of @Configuration extension points.
|
|
compile "cglib:cglib:$cglibVersion"
|
|
|
|
|
|
// Testing
|
|
testCompile "junit:junit:$junitVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile("javax.annotation:jsr250-api:1.0") { optional = true }
|
|
|
|
}
|
|
|
|
javaprojects = rootProject
|
|
|
|
sourceCompatibility = 1.6
|
|
targetCompatibility = 1.6
|
|
|
|
javadoc {
|
|
srcDir = file("${projectDir}/docs/src/api")
|
|
destinationDir = file("${buildDir}/api")
|
|
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
|
|
author = true
|
|
showFromProtected()
|
|
|
|
// groups = [
|
|
// 'Spring Data Hadoop' : ['org.springframework.data.hadoop*'],
|
|
// ]
|
|
|
|
links = [
|
|
"http://static.springframework.org/spring/docs/3.0.x/javadoc-api",
|
|
"http://download.oracle.com/javase/6/docs/api",
|
|
"http://logging.apache.org/log4j/docs/api/",
|
|
]
|
|
|
|
exclude "org/springframework/data/hadoop/config/**"
|
|
}
|
|
|
|
title = "${rootProject.description} ${version} API"
|
|
|
|
// collect all the sources that will be included in the javadoc output
|
|
source javaprojects.collect {project ->
|
|
project.sourceSets.main.allJava
|
|
}
|
|
|
|
// collect all main classpaths to be able to resolve @see refs, etc.
|
|
// this collection also determines the set of projects that this
|
|
// task dependsOn, thus the runtimeClasspath is used to ensure all
|
|
// projects are included, not just *dependencies* of all classes.
|
|
// this is awkward and took me a while to figure out.
|
|
classpath = files(javaprojects.collect {project ->
|
|
project.sourceSets.main.runtimeClasspath
|
|
})
|
|
|
|
// copy the images from the doc-files dir over to the target
|
|
doLast { task ->
|
|
copy {
|
|
from file("${task.srcDir}/doc-files")
|
|
into file("${task.destinationDir}/doc-files")
|
|
}
|
|
}
|
|
}
|
|
|
|
ideaProject {
|
|
withXml { provider ->
|
|
provider.node.component.find { it.@name == 'VcsDirectoryMappings' }.mapping.@vcs = 'Git'
|
|
}
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
gradleVersion = '1.0-milestone-3'
|
|
description = "Generate the Gradle wrapper"
|
|
group = "Distribution"
|
|
}
|
|
|
|
apply from: "$rootDir/maven.gradle"
|
|
|
|
// Distribution tasks
|
|
task dist(type: Zip) {
|
|
description = "Generate the ZIP Distribution"
|
|
group = "Distribution"
|
|
dependsOn assemble, subprojects*.tasks*.matching { task -> task.name == 'assemble' }
|
|
|
|
// evaluationDependsOn(':docs')
|
|
|
|
def zipRootDir = "${project.name}-$version"
|
|
into(zipRootDir) {
|
|
from('/docs/src/info') {
|
|
include '*.txt'
|
|
}
|
|
from('/docs/build/') {
|
|
into 'docs'
|
|
include 'reference/**/*'
|
|
}
|
|
from('samples/') {
|
|
into 'samples'
|
|
exclude '**/build/**'
|
|
exclude '**/bin/**'
|
|
exclude '**/.settings/**'
|
|
exclude '**/.gradle/**'
|
|
exclude '**/.*'
|
|
}
|
|
from('build/') {
|
|
into 'docs'
|
|
include 'api/**/*'
|
|
}
|
|
into('dist') {
|
|
from javaprojects.collect {project -> project.libsDir }
|
|
}
|
|
}
|
|
doLast {
|
|
ant.checksum(file: archivePath, algorithm: 'SHA1', fileext: '.sha1')
|
|
}
|
|
}
|
|
|
|
task uploadDist(type: org.springframework.gradle.tasks.S3DistroUpload, dependsOn: dist) {
|
|
description = "Upload the ZIP Distribution"
|
|
group = "Distribution"
|
|
archiveFile = dist.archivePath
|
|
projectKey = 'SHDP'
|
|
projectName = 'Spring Data Hadoop'
|
|
}
|
|
|
|
assemble.dependsOn = ['jar', 'sourceJar', 'javadocJar']
|
|
|
|
task run(type: JavaExec) {
|
|
description = 'Runs the application'
|
|
main = "org.springframework.shell.Bootstrap"
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
}
|
|
|
|
//defaultTasks 'run'
|
|
|
|
|
|
defaultTasks 'build' |