160 lines
4.4 KiB
Groovy
160 lines
4.4 KiB
Groovy
// Docbook and Javadoc building and uploading tasks
|
|
apply plugin: 'base'
|
|
|
|
task docs {
|
|
dependsOn 'manual:reference', 'apidocs', 'guides:asciidoctor'
|
|
}
|
|
|
|
project('manual') {
|
|
apply plugin: 'base'
|
|
apply plugin: 'org.asciidoctor.gradle.asciidoctor'
|
|
apply plugin: 'docbook-reference'
|
|
|
|
ext.expandPlaceholders = ""
|
|
|
|
asciidoctorj {
|
|
version = '1.5.2'
|
|
}
|
|
|
|
asciidoctor {
|
|
backends = ['docbook5']
|
|
def ghTag = snapshotBuild ? 'master' : project.version
|
|
def ghUrl = "https://github.com/spring-projects/spring-security/tree/$ghTag"
|
|
options = [
|
|
eruby: 'erubis',
|
|
attributes: [
|
|
copycss : '',
|
|
icons : 'font',
|
|
'source-highlighter': 'prettify',
|
|
sectanchors : '',
|
|
toc2: '',
|
|
idprefix: '',
|
|
idseparator: '-',
|
|
doctype: 'book',
|
|
numbered: '',
|
|
'spring-security-version' : project.version,
|
|
'spring-version' : springVersion,
|
|
revnumber : project.version,
|
|
'gh-url': ghUrl,
|
|
'gh-samples-url': "$ghUrl/samples",
|
|
docinfo : ""
|
|
]
|
|
]
|
|
}
|
|
|
|
reference {
|
|
sourceDir = new File(asciidoctor.outputDir , 'docbook5')
|
|
pdfFilename = "spring-security-reference.pdf"
|
|
epubFilename = "spring-security-reference.epub"
|
|
expandPlaceholders = ""
|
|
}
|
|
|
|
afterEvaluate {
|
|
tasks.findAll { it.name.startsWith("reference") }.each{ it.dependsOn.add("asciidoctor") }
|
|
}
|
|
|
|
|
|
ext.spec = copySpec {
|
|
from (reference) {
|
|
into 'reference'
|
|
}
|
|
}
|
|
}
|
|
|
|
task apidocs(type: Javadoc) {
|
|
destinationDir = new File(buildDir, 'apidocs')
|
|
title = "Spring Security $version API"
|
|
logging.captureStandardError LogLevel.INFO
|
|
logging.captureStandardOutput LogLevel.INFO
|
|
|
|
source coreModuleProjects.collect { project ->
|
|
project.sourceSets.main.allJava
|
|
}
|
|
|
|
classpath = files(coreModuleProjects.collect { project ->
|
|
project.sourceSets.main.compileClasspath
|
|
})
|
|
options {
|
|
outputLevel = org.gradle.external.javadoc.JavadocOutputLevel.QUIET
|
|
links = [
|
|
"http://static.springframework.org/spring/docs/3.2.x/javadoc-api",
|
|
"http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/",
|
|
"http://download.oracle.com/javase/6/docs/api/"
|
|
]
|
|
groups = [
|
|
'Spring Security Core':[
|
|
'org.springframework.security.core*',
|
|
'org.springframework.security.authentication*',
|
|
'org.springframework.security.access*',
|
|
'org.springframework.security.remoting*',
|
|
'org.springframework.security.provisioning*',
|
|
'org.springframework.security.util*'],
|
|
'Spring Security Web':['org.springframework.security.web*'],
|
|
'Spring Security LDAP':['org.springframework.security.ldap*'],
|
|
'Spring Security Crypto':['org.springframework.security.crypto*'],
|
|
'Spring Security OpenID':['org.springframework.security.openid*'],
|
|
'Spring Security CAS':['org.springframework.security.cas*'],
|
|
'Spring Security ACL':['org.springframework.security.acls*'],
|
|
'Spring Security Config':['org.springframework.security.config*'],
|
|
'Spring Security Taglibs':['org.springframework.security.taglibs*'],
|
|
|
|
]
|
|
addStringOption('-quiet')
|
|
}
|
|
}
|
|
|
|
if (JavaVersion.current().isJava8Compatible()) {
|
|
// Turn off doclint in JDK 8 Javadoc (too strict on checks)
|
|
apidocs.options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
|
|
ext.apiSpec = copySpec {
|
|
into('apidocs') {
|
|
from(apidocs.destinationDir)
|
|
}
|
|
}
|
|
|
|
assemble.dependsOn = [apidocs, 'manual:asciidoctor']
|
|
|
|
task docsZip(type: Zip) {
|
|
dependsOn docs
|
|
evaluationDependsOn('guides')
|
|
group = 'Distribution'
|
|
baseName = rootProject.name
|
|
classifier = 'docs'
|
|
description = "Builds -${classifier} archive containing api and reference " +
|
|
"for deployment at static.springframework.org/spring-security/site/docs."
|
|
|
|
with(project(':docs').apiSpec)
|
|
with(project(':docs:manual').spec)
|
|
with(project(':docs:guides').spec)
|
|
}
|
|
|
|
task schemaZip(type: Zip) {
|
|
group = 'Distribution'
|
|
baseName = rootProject.name
|
|
classifier = 'schema'
|
|
description = "Builds -${classifier} archive containing all " +
|
|
"XSDs for deployment at static.springframework.org/schema."
|
|
|
|
coreModuleProjects.each { module ->
|
|
def Properties schemas = new Properties();
|
|
|
|
module.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 = module.sourceSets.main.resources.find {
|
|
it.path.endsWith(schemas.get(key))
|
|
}
|
|
assert xsdFile != null
|
|
into (shortName) {
|
|
from xsdFile.path
|
|
}
|
|
}
|
|
}
|
|
}
|