206 lines
6.5 KiB
Groovy
206 lines
6.5 KiB
Groovy
apply plugin: 'base'
|
|
|
|
allprojects {
|
|
version = '3.1.0.CI-SNAPSHOT'
|
|
releaseBuild = version.endsWith('RELEASE')
|
|
snapshotBuild = version.endsWith('SNAPSHOT')
|
|
|
|
group = 'org.springframework.security'
|
|
|
|
repositories {
|
|
mavenRepo name:'Local', urls: "file://" + System.properties['user.home'] + "/.m2/repository"
|
|
mavenCentral()
|
|
mavenRepo name: 'SpringSource Milestone Repo', urls: 'http://repository.springsource.com/maven/bundles/milestone'
|
|
mavenRepo name: 'SpringSource Maven Snapshot Repo', urls: 'http://maven.springframework.org/snapshot/'
|
|
mavenRepo name: 'SpringSource Enterprise Release', urls: 'http://repository.springsource.com/maven/bundles/release'
|
|
mavenRepo name: 'SpringSource Enterprise External', urls: 'http://repository.springsource.com/maven/bundles/external'
|
|
}
|
|
}
|
|
|
|
configure(javaProjects) {
|
|
apply from: "$rootDir/gradle/javaprojects.gradle"
|
|
apply from: "$rootDir/gradle/maven.gradle"
|
|
}
|
|
|
|
configure(coreModuleProjects) {
|
|
apply from: "$rootDir/gradle/bundlor.gradle"
|
|
// Gives better names in structure101 jar diagram
|
|
sourceSets.main.classesDir = new File(buildDir, "classes/" + project.name.substring("spring-security".length() + 1))
|
|
}
|
|
|
|
configure (aspectjProjects) {
|
|
apply from: "$rootDir/gradle/aspectj.gradle"
|
|
}
|
|
|
|
configurations {
|
|
antlibs
|
|
}
|
|
|
|
dependencies {
|
|
antlibs "org.springframework.build:org.springframework.build.aws.ant:3.0.3.RELEASE",
|
|
"net.java.dev.jets3t:jets3t:0.6.1"
|
|
}
|
|
|
|
def docsDir = new File(project(':manual').buildDir, 'docs')
|
|
|
|
task apidocs(type: Javadoc) {
|
|
destinationDir = new File(buildDir, 'apidocs')
|
|
title = "Spring Security $version API"
|
|
optionsFile = file("$buildDir/tmp/javadoc.options")
|
|
|
|
source coreModuleProjects.collect {project ->
|
|
project.sourceSets.main.allJava
|
|
}
|
|
|
|
classpath = files(coreModuleProjects.collect {project ->
|
|
project.sourceSets.main.compileClasspath
|
|
})
|
|
}
|
|
|
|
task apitar(type: Tar, dependsOn: apidocs) {
|
|
compression = Compression.BZIP2
|
|
classifier = 'apidocs'
|
|
into('apidocs') {
|
|
from apidocs.destinationDir
|
|
}
|
|
}
|
|
|
|
task doctar(type: Tar, dependsOn: ':manual:doc') {
|
|
compression = Compression.BZIP2
|
|
classifier = 'doc'
|
|
into('reference') {
|
|
from docsDir
|
|
}
|
|
}
|
|
|
|
task login {
|
|
// add dynamic properties to login task
|
|
username = null
|
|
password = null
|
|
doFirst {
|
|
ant {
|
|
input("Please enter the ssh username for host '$sshHost'", addproperty: "ssh.username")
|
|
input("Please enter the ssh password '$sshHost'", addproperty: "ssh.password")
|
|
}
|
|
username = ant.properties['ssh.username']
|
|
password = ant.properties['ssh.password']
|
|
}
|
|
}
|
|
|
|
// Define remoteSiteDir and sshHost in gradle.properties
|
|
def remoteDocsDir="$remoteSiteDir/docs/3.1.x"
|
|
|
|
task uploadApidocs(dependsOn: login) << {
|
|
ant {
|
|
scp(file: apitar.archivePath, todir: "$login.username@$sshHost:$remoteDocsDir", password: login.password)
|
|
sshexec(host: sshHost, username: login.username, password: login.password, command: "cd $remoteDocsDir && tar -xjf ${apitar.archiveName}")
|
|
sshexec(host: sshHost, username: login.username, password: login.password, command: "rm $remoteDocsDir/${apitar.archiveName}")
|
|
}
|
|
}
|
|
|
|
task uploadManual(dependsOn: login) << {
|
|
ant {
|
|
scp(file: doctar.archivePath, todir: "$login.username@$sshHost:$remoteDocsDir", password: login.password)
|
|
sshexec(host: sshHost, username: login.username, password: login.password, command: "cd $remoteDocsDir && tar -xjf ${doctar.archiveName}")
|
|
sshexec(host: sshHost, username: login.username, password: login.password, command: "rm $remoteDocsDir/${doctar.archiveName}")
|
|
}
|
|
}
|
|
|
|
task dist(type: Zip) {
|
|
def zipRootDir = "${project.name}-$version"
|
|
into(zipRootDir) {
|
|
into('docs/apidocs') {
|
|
from apidocs.destinationDir
|
|
}
|
|
into('docs/reference') {
|
|
from docsDir
|
|
}
|
|
into('dist') {
|
|
from coreModuleProjects.collect {project -> project.libsDir }
|
|
from project(':spring-security-samples-tutorial').libsDir
|
|
from project(':spring-security-samples-contacts').libsDir
|
|
}
|
|
}
|
|
}
|
|
|
|
dist {
|
|
dependsOn apidocs, ':manual:doc', subprojects.collect { "$it.path:assemble" }
|
|
doLast {
|
|
ant.checksum(file: archivePath, algorithm: 'SHA1', fileext: '.sha1')
|
|
}
|
|
}
|
|
|
|
task uploadDist(type: UploadDist) {
|
|
archiveFile = dist.archivePath
|
|
shaFile = "${dist.archivePath}.sha1" as File
|
|
archiveName = dist.archiveName
|
|
classpath = configurations.antlibs
|
|
}
|
|
|
|
def getJavaProjects() {
|
|
subprojects.findAll {project -> project.name != 'faq' && project.name != 'manual' }
|
|
}
|
|
|
|
def getSampleProjects() {
|
|
subprojects.findAll {project -> project.name.startsWith('spring-security-samples') }
|
|
}
|
|
|
|
def getItestProjects() {
|
|
subprojects.findAll {project -> project.name.startsWith('itest') }
|
|
}
|
|
|
|
def getCoreModuleProjects() {
|
|
javaProjects - sampleProjects - itestProjects - aspectjProjects
|
|
}
|
|
|
|
def getAspectjProjects() {
|
|
subprojects.findAll {project -> project.name == 'spring-security-aspects' || project.name == 'spring-security-samples-aspectj'}
|
|
}
|
|
|
|
class UploadDist extends DefaultTask {
|
|
@InputFile
|
|
File shaFile
|
|
|
|
@InputFile
|
|
File archiveFile
|
|
|
|
@Input
|
|
String archiveName
|
|
|
|
@InputFiles
|
|
def classpath
|
|
|
|
@TaskAction
|
|
def upload() {
|
|
def accessKey = project.s3AccessKey
|
|
def secretKey = project.s3SecretAccessKey
|
|
def version = project.version
|
|
|
|
project.ant {
|
|
taskdef(resource: 'org/springframework/build/aws/ant/antlib.xml', classpath: classpath.asPath)
|
|
s3(accessKey: accessKey, secretKey: secretKey) {
|
|
upload(bucketName: 'dist.springframework.org', file: archiveFile,
|
|
toFile: releaseType() + "/SEC/${archiveName}", publicRead: 'true') {
|
|
metadata(name: 'project.name', value: 'Spring Security')
|
|
metadata(name: 'release.type', value: releaseType())
|
|
metadata(name: 'bundle.version', value: version)
|
|
metadata(name: 'package.file.name', value: archiveName)
|
|
}
|
|
upload(bucketName: 'dist.springframework.org', file: shaFile,
|
|
toFile: releaseType() + "/SEC/${archiveName}.sha1", publicRead: 'true')
|
|
}
|
|
}
|
|
}
|
|
|
|
def releaseType() {
|
|
if (project.releaseBuild) {
|
|
'release'
|
|
} else if (project.snapshotBuild) {
|
|
'snapshot'
|
|
} else {
|
|
'milestone'
|
|
}
|
|
}
|
|
}
|
|
|