task doc(dependsOn: [javadoc, groovydoc, 'docGDK']) { | |
ext.footer = "Copyright © 2003-2012 The Codehaus. All rights reserved." | |
ext.title = "Groovy ${groovyVersion}" | |
} | |
def javadocSpec = { | |
maxMemory = javaDoc_mx | |
project.configure(options) { | |
windowTitle = doc.title | |
docTitle = doc.title | |
encoding = "ISO-8859-1" | |
author = true | |
version = true | |
overview = rootProject.file("src/main/overviewj.html") | |
footer = doc.footer | |
source = rootProject.useIndy()?'1.7':'1.5' | |
links("http://docs.oracle.com/javase/6/docs/api/", "http://evgeny-goldin.org/javadoc/ant/api/", | |
"http://commons.apache.org/cli/api-release", "http://kentbeck.github.com/junit/javadoc/latest/", | |
"http://docs.oracle.com/javaee/6/api/", "http://www.antlr2.org/javadoc") | |
} | |
} | |
def groovydocSpec = { | |
use = true | |
if (project != rootProject) source = project.sourceSets.main.allSource | |
classpath = javadoc.classpath | |
ext.windowtitle = doc.title | |
ext.doctitle = doc.title | |
header = doc.title | |
footer = doc.footer | |
overview = rootProject.file("src/main/overview.html") | |
includePrivate = false | |
link "http://docs.oracle.com/javaee/6/api/", "javax.servlet.", "javax.management." | |
link "http://docs.oracle.com/javase/6/docs/api/", "java.", "org.xml.", "javax.", "org.w3c." | |
link "http://evgeny-goldin.org/javadoc/ant/api/", "org.apache.ant.", "org.apache.tools.ant." | |
link "http://kentbeck.github.com/junit/javadoc/latest/", "org.junit.", "junit." | |
link "http://www.antlr2.org/javadoc", "antlr." | |
link "http://commons.apache.org/cli/api-release", "org.apache.commons.cli." | |
} | |
allprojects { | |
javadoc javadocSpec | |
groovydoc groovydocSpec | |
} | |
// Root project has an extra 'all' javadoc task | |
task javadocAll(type:Javadoc) << javadocSpec | |
javadocAll { | |
destinationDir = new File(buildDir,'alljavadoc') | |
source = javadoc.source | |
classpath = javadoc.classpath | |
subprojects.each { sp -> | |
source += sp.javadoc.source | |
classpath += sp.javadoc.classpath | |
} | |
} | |
// Root project has an extra 'all' groovydoc task | |
task groovydocAll(type:Groovydoc) << groovydocSpec | |
groovydocAll { | |
dependsOn( { project(':groovy-groovydoc').classes }) | |
dependsOn( { project(':groovy-docgenerator').classes }) | |
destinationDir = new File(buildDir,'allgroovydoc') | |
source = groovydoc.source | |
classpath = groovydoc.classpath | |
groovyClasspath = groovydoc.groovyClasspath | |
subprojects.each { sp -> | |
source += sp.groovydoc.source | |
classpath += sp.groovydoc.classpath | |
groovyClasspath += sp.groovydoc.groovyClasspath | |
} | |
} | |
// when docgenerator is run by the build, it requires a groovy-release-info file | |
// but the file is only generated by the 'jar' task, so as a workaround, we copy | |
// it into the docgenerator classes | |
task docProjectVersionInfo(type: Copy) { | |
destinationDir = file("${project(':groovy-docgenerator').buildDir}/classes/main") | |
into('META-INF') { | |
from('src/main/META-INF/groovy-release-info.properties') { | |
filter(rootProject.propertiesFilter, org.apache.tools.ant.filters.ReplaceTokens) | |
} | |
} | |
} | |
task docGDK { | |
dependsOn([project(':groovy-groovydoc'), project(':groovy-docgenerator')]*.classes) | |
dependsOn docProjectVersionInfo | |
ext.destinationDir = "$buildDir/html/groovy-jdk" | |
inputs.files sourceSets.tools.runtimeClasspath | |
outputs.dir destinationDir | |
doLast {task -> | |
try { | |
ant { | |
java(classname: "org.codehaus.groovy.tools.DocGenerator", fork: "true", failonerror: "true", | |
classpath: (configurations.tools + groovydoc.groovyClasspath).asPath, | |
errorproperty: 'edr', | |
outputproperty: 'odr') { | |
arg(value: "org.codehaus.groovy.runtime.DefaultGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.DefaultGroovyStaticMethods") | |
arg(value: "org.codehaus.groovy.runtime.DateGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.EncodingGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.IOGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.ProcessGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.ResourceGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.SocketGroovyMethods") | |
// arg(value: "org.codehaus.groovy.runtime.SqlGroovyMethods") | |
arg(value: "org.codehaus.groovy.runtime.StringGroovyMethods") | |
// arg(value: "org.codehaus.groovy.runtime.SwingGroovyMethods") | |
// arg(value: "org.codehaus.groovy.runtime.XmlGroovyMethods") | |
arg(value: "org.codehaus.groovy.vmplugin.v5.PluginDefaultGroovyMethods") | |
arg(value: "org.codehaus.groovy.vmplugin.v6.PluginDefaultGroovyMethods") | |
arg(value: "org.codehaus.groovy.vmplugin.v6.PluginStaticGroovyMethods") | |
} | |
} | |
} finally { | |
if (ant.properties.odr) { | |
logger.info "Out: " + ant.properties.odr | |
} | |
if (ant.properties.edr) { | |
logger.error "Err: " + ant.properties.edr | |
} | |
} | |
copy { | |
into task.destinationDir | |
from "src/tools/org/codehaus/groovy/tools/groovy.ico", "src/tools/org/codehaus/groovy/tools/stylesheet.css" | |
} | |
} | |
} |