blob: c93336c54214131018f34336e60b8436fe6f390b [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE someant [
<!ENTITY links SYSTEM "links.xml">
<!ENTITY properties SYSTEM "properties.xml">
<!ENTITY replaces SYSTEM "replaces.xml">
<!ENTITY disallowed-links SYSTEM "disallowed-links.xml">
]>
<project name="template" default="die" basedir=".">
<import file="../default-properties.xml"/>
<description><![CDATA[
Templated targets:
------------------------------ javadoc ------------------------
${javadoc.base} top dir of module, e.g. "${nb_all}/foo" ("." from your build script)
${javadoc.name} name of docs folder, e.g. "org-netbeans-modules-foo"
${javadoc.title} display title of docs, e.g. "Foo API"
${javadoc.packages} list of packages to build, e.g. "org.netbeans.api.foo,org.netbeans.spi.foo"
${javadoc.classpath} classpath for source files (probably same as what you use for <javac>)
Optional:
${javadoc.files} selector describing which files to build
${javadoc.main.page} link to main page, e.g. org/netbeans/api/foo/doc-files/api.html
${javadoc.docfiles} doc-files directory such as ${javadoc.base}/api/doc; default none
${javadoc.apichanges} API change list XML file; default no change list
${javadoc.arch} architecture summary of the module; default a dummy summary
${javadoc.overview} Overview HTML file; default a generic page
${javadoc.check.external.links} set to "true" to check external HTTP links
${javadoc.header} Special header text.
${javadoc.web.root} Base URL for online Javadoc for linking; default http://www.netbeans.org/download/dev/javadoc
To call this script you MUST use the form of <ant> with the 'dir' attribute. This
script expects that its basedir is the directory containing it. If you use only
the 'antfile' attribute the basedir will be copied from your script, which will
cause it to fail.
]]></description>
<target name="die">
<fail>Use this script only from other scripts, to call templated targets.</fail>
</target>
<!-- javadoc -->
<target name="javadoc-init" >
<!-- Output dir (will create ${javadoc.name}/ and ${javadoc.name}.zip beneath this): -->
<property name="javadoc.out" location="${netbeans.javadoc.dir}"/>
<property name="javadoc.out.dir" location="${javadoc.out}/${javadoc.name}"/>
<property name="javadoc.out.zip" location="${javadoc.out}/${javadoc.name}.zip"/>
<!-- Source files: -->
<property name="javadoc.src" location="${javadoc.base}/src"/>
<!-- Extra HTML files, normally in **/doc-files/*.html: -->
<property name="javadoc.docfiles" location="no-doc-files"/>
<condition property="javadoc.overview.generate.generic">
<not>
<isset property="javadoc.overview" />
</not>
</condition>
<property name="javadoc.overview" location="../build/tmp/overview/${javadoc.name}-overview-generic.html"/>
<mkdir dir="${javadoc.overview}/../" />
<property name="javadoc.apichanges" location="apichanges-empty.xml"/>
<property name="javadoc.arch" location="arch-empty.xml"/>
<!-- Docs to link to: -->
<property name="javadoc.web.root" value="http://root/"/>
<property name="javadoc.docs.jdk" value="http://download.oracle.com/javase/8/docs/api"/>
&properties;
<!-- add more here as needed... -->
<property name="javadoc.css.dir" location="."/>
<property name="javadoc.css.main" location="${javadoc.css.dir}/javadoc.css"/>
<fileset id="javadoc.css.files" dir="${javadoc.css.dir}">
<include name="*.css"/>
</fileset>
<property name="javadoc.resources.dir" location="resources"/>
<fileset id="javadoc.resources.files" dir="${javadoc.resources.dir}">
<include name="**/*"/>
<exclude name="**/*.xcf"/> <!-- GIMP versions of the images -->
</fileset>
<property name="javadoc.check.external.links" value="false"/>
<property name="javadoc.header" value="&amp;nbsp;"/>
<!-- Determine API stability -->
<mkdir dir="../build/tmp/javadoc-colors"/>
<delete file="../build/tmp/javadoc-colors/${javadoc.name}.txt" failonerror="false"/>
<arch answers="${javadoc.arch}" xsl="export2color.xsl" output="../build/tmp/javadoc-colors/${javadoc.name}.txt" />
<property file="../build/tmp/javadoc-colors/${javadoc.name}.txt"/>
<property name="javadoc.stability.label" value="&lt;span style='font-style:normal; font-size:medium; font-weight:normal; background-color:${stability.color};'&gt;&lt;a href='${stability.definition.url}' target='_blank'&gt;${stability.title}&lt;/a&gt;&lt;/span&gt;"/>
<condition property="nb-docs.css" value="nb-docs-stability.css">
<isset property="stability.image"/>
</condition>
<condition property="nb-docs.css" value="nb-docs.css">
<not>
<isset property="stability.image"/>
</not>
</condition>
<mkdir dir="${javadoc.out.dir}"/>
<condition property="javadoc.files.provided">
<isset property="javadoc.files" />
</condition>
<!-- default value for javadoc-files -->
<selector id="all-java-files" >
<filename name="**/*.java" />
</selector>
<property name="javadoc.files" value="all-java-files" />
<property file="../build.properties" />
<condition property="javadoc.reference.generated" >
<isset property="javadoc.docs.${javadoc.name}" />
</condition>
</target>
<target name="javadoc-generate-references" depends="javadoc-init" unless="javadoc.reference.generated" >
<!-- Add these files to the generated ones -->
<concat append="true" destfile="properties.xml" ><![CDATA[<property name="javadoc.docs.${javadoc.name}" value="$${javadoc.web.root}/${javadoc.name}"/>]]>
</concat>
<concat append="true" destfile="links.xml" ><![CDATA[<link href="$${javadoc.docs.${javadoc.name}}" offline="true" packagelistloc="${javadoc.out.dir}"/>]]>
</concat>
<concat append="true" destfile="replaces.xml" ><![CDATA[<replacefilter token="@${javadoc.name}@" value="$${javadoc.docs.${javadoc.name}}"/>]]>
</concat>
<replace
token="${netbeans.javadoc.dir}"
value="$${netbeans.javadoc.dir}"
file="links.xml"
/>
<!-- set the property for use in this script -->
<property name="javadoc.docs.${javadoc.name}" value="${javadoc.web.root}/${javadoc.name}" />
</target>
<target name="javadoc-generate-overview" depends="javadoc-init,javadoc-check-timestamps" unless="javadoc.overview.should.not.be.generated" >
<delete file="${javadoc.overview}" />
<property file="${export.interfaces}/properties/all.properties" />
<arch xsl="exportOverview.xsl" answers="${javadoc.arch}" output="${javadoc.overview}" stylesheet="prose.css"
apichanges="${javadoc.apichanges}" project="${javadoc.project}"
>
<!--
<param name="changes-since-year" expression="${previous.release.year}"/>
<param name="changes-since-day" expression="${previous.release.day}"/>
<param name="changes-since-month" expression="${previous.release.month}"/>
-->
</arch>
</target>
<target name="javadoc-check-timestamps" depends="javadoc-init">
<uptodate targetfile="${javadoc.out.zip}" property="javadoc.up.to.date">
<srcfiles dir="${javadoc.src}" erroronmissingdir="false">
<or>
<and>
<selector refid="${javadoc.files}" />
<filename name="**/*.java"/>
</and>
<!-- Can have inline docs too: -->
<filename name="**/package.html"/>
<filename name="**/doc-files/"/>
</or>
</srcfiles>
<srcfiles dir="${javadoc.docfiles}"/>
<srcfiles refid="javadoc.css.files"/>
<srcfiles refid="javadoc.resources.files"/>
<srcfiles dir=".">
<include name="apichanges.xsl"/>
</srcfiles>
<srcfiles file="${javadoc.apichanges}"/>
<srcfiles file="${javadoc.arch}"/>
<srcfiles file="${javadoc.overview}"/>
<srcfiles file="exportOverview.xsl"/>
</uptodate>
<condition property="javadoc.should.not.be.generated" >
<or>
<isset property="javadoc.up.to.date" />
<not>
<isset property="javadoc.packages" />
</not>
<equals arg1="${javadoc.packages}" arg2="" />
</or>
</condition>
<condition property="javadoc.interfaces.should.not.be.generated" >
<or>
<isset property="javadoc.up.to.date" />
<not>
<isset property="export.interfaces" />
</not>
</or>
</condition>
<condition property="javadoc.apichanges.should.not.be.generated" >
<or>
<isset property="javadoc.up.to.date" />
<not>
<isset property="export.apichanges" />
</not>
</or>
</condition>
<condition property="javadoc.overview.should.not.be.generated" >
<or>
<isset property="javadoc.up.to.date" />
<not>
<isset property="javadoc.overview.generate.generic" />
</not>
</or>
</condition>
<echo level="verbose">javadoc.up.to.date=${javadoc.up.to.date} javadoc.should.not.be.generated=${javadoc.should.not.be.generated} javadoc.packages=${javadoc.packages}</echo>
</target>
<target name="javadoc-make-plain-title" unless="javadoc.main.page">
<property name="javadoc.hyperlinked.title" value="${javadoc.title}"/>
</target>
<target name="javadoc-make-hyperlinked-title" if="javadoc.main.page">
<property name="javadoc.hyperlinked.title" value='&lt;a href="@TOP@${javadoc.main.page}"&gt;${javadoc.title}&lt;/a&gt;'/>
</target>
<target name="javadoc-stage-alternative" depends="javadoc-init,javadoc-check-timestamps" if="javadoc.should.not.be.generated" unless="javadoc.up.to.date" >
<!-- if no packages are specified, this is used to generate index.html from the overview page -->
<copy file="${javadoc.overview}" tofile="${javadoc.out.dir}/index.html" />
</target>
<target name="javadoc-stage-main" depends="javadoc-init,javadoc-check-timestamps,javadoc-exec-files,javadoc-exec-packages" unless="javadoc.should.not.be.generated" >
<tstamp>
<format property="YEAR" pattern="yyyy"/>
</tstamp>
<copy todir="${javadoc.out.dir}">
<fileset refid="javadoc.css.files"/>
</copy>
<replace dir="${javadoc.out.dir}" >
<include name="javadoc*.css"/>
<include name="nb-docs-stability.css"/>
<replacefilter token="@CSS_TIMESTAMP@" value="Built on ${TODAY}. Copyright 2017-${YEAR} The Apache Software Foundation. All Rights Reserved." />
<replacefilter token="@nb-docs-css@" value="${nb-docs.css}"/>
<replacefilter token="@api-stability-image@" value="${stability.image}"/>
</replace>
<mkdir dir="${javadoc.out.dir}/resources"/>
<copy todir="${javadoc.out.dir}/resources">
<fileset refid="javadoc.resources.files"/>
</copy>
</target>
<target name="javadoc-exec-condition" depends="javadoc-check-timestamps" >
<condition property="javadoc.exec.packages">
<or>
<isset property="javadoc.files.provided"/>
<isset property="javadoc.should.not.be.generated"/>
<not>
<available file="${javadoc.src}"/>
</not>
</or>
</condition>
</target>
<target name="-javadoc-set-footer">
<!-- Timestamp is handled in javadoc.css to avoid too many commits on generated HTML files. -->
<property name="javadoc.footer" value='&lt;span class="footnote"&gt;&lt;/span&gt;&lt;!-- See javadoc.css for timestamp information --&gt;'/>
</target>
<target name="javadoc-exec-packages" depends="javadoc-init,javadoc-generate-references,javadoc-generate-overview,javadoc-exec-condition,javadoc-check-timestamps,javadoc-make-plain-title,javadoc-make-hyperlinked-title,javadoc-exec-condition,-javadoc-set-footer" unless="javadoc.exec.packages">
<javadoc source="${javac.source}" author="false" destdir="${javadoc.out.dir}" packagenames="${javadoc.packages}" stylesheetfile="${javadoc.css.main}" windowtitle="${javadoc.title}" overview="${javadoc.overview}" splitindex="true" use="true" version="false" useexternalfile="true" encoding="UTF-8">
<sourcepath>
<pathelement location="${javadoc.docfiles}"/>
<pathelement location="${javadoc.src}"/>
</sourcepath>
<doclet
name="org.apidesign.javadoc.codesnippet.Doclet"
path="${nb_all}/nbbuild/external/codesnippet-doclet-0.30.jar"
>
<param name="-snippetpath" value="${javadoc.base}"/>
<param name="-maxLineLength" value="120"/>
</doclet>
<classpath path="${javadoc.classpath}"/>
<!-- XXX note, this does not support more than one group -->
<group packages="${javadoc.packages}">
<title>${javadoc.hyperlinked.title}</title>
</group>
<link href="${javadoc.docs.jdk}" offline="true" packagelistloc="."/>
&links;
<doctitle>${javadoc.title}&lt;br/&gt;${javadoc.stability.label}</doctitle>
<header>${javadoc.header}</header>
<bottom>${javadoc.footer}</bottom>
<!-- Avoid timestamp comments in _all_ html generated files, to reduce unnecessary git commits -->
<arg value="-notimestamp" />
<arg value="--allow-script-in-comments" />
</javadoc>
</target>
<target name="javadoc-exec-files" depends="javadoc-init,javadoc-generate-references,javadoc-generate-overview,javadoc-exec-condition,javadoc-check-timestamps,javadoc-make-plain-title,javadoc-make-hyperlinked-title" if="javadoc.files.provided,-javadoc-set-footer" unless="javadoc.up.to.date">
<javadoc source="${javac.source}" author="false" destdir="${javadoc.out.dir}" packagenames="${javadoc.packages}" stylesheetfile="${javadoc.css.main}" windowtitle="${javadoc.title}" overview="${javadoc.overview}" splitindex="true" use="true" version="false" useexternalfile="true" encoding="UTF-8">
<fileset dir="${javadoc.docfiles}"/>
<fileset dir="${javadoc.src}" >
<and>
<selector refid="${javadoc.files}" />
<filename name="**/*.java" />
</and>
</fileset>
<classpath path="${javadoc.classpath}"/>
<!-- XXX note, this does not support more than one group -->
<group packages="${javadoc.packages}">
<title>${javadoc.hyperlinked.title}</title>
</group>
<link href="${javadoc.docs.jdk}" offline="true" packagelistloc="."/>
&links;
<doctitle>${javadoc.title}&lt;br/&gt;${javadoc.stability.label}</doctitle>
<header>${javadoc.header}</header>
<bottom>${javadoc.footer}</bottom>
</javadoc>
</target>
<target name="javadoc-stage-apichanges" depends="javadoc-init,javadoc-check-timestamps,javadoc-stage-export-apichanges" unless="javadoc.up.to.date">
<xslt in="${javadoc.apichanges}" out="${javadoc.out.dir}/apichanges.html" style="apichanges.xsl">
<xmlcatalog refid="nbantextcatalog" />
<param name="javadoc-url-base" expression="."/>
</xslt>
</target>
<target name="javadoc-stage-export-apichanges" depends="javadoc-init,javadoc-check-timestamps,javadoc-stage-init-apichanges" unless="javadoc.apichanges.should.not.be.generated">
<fail message="Need to specify the date of branching of previous.release.year: ${previous.release.year}" unless="previous.release.year" />
<fail message="Need to specify the date of branching of previous.release.month: ${previous.release.month}" unless="previous.release.month" />
<fail message="Need to specify the date of branching of previous.release.day: ${previous.release.day}" unless="previous.release.day" />
<xslt in="${javadoc.apichanges}" out="${export.apichanges}/${javadoc.name}" style="export-apichanges.xsl">
<xmlcatalog refid="nbantextcatalog" />
<param name="changes-since-url" expression="${javadoc.name}/apichanges.html"/>
<param name="changes-since-year" expression="${previous.release.year}"/>
<param name="changes-since-day" expression="${previous.release.day}"/>
<param name="changes-since-month" expression="${previous.release.month}"/>
</xslt>
</target>
<target name="javadoc-stage-init-apichanges" depends="javadoc-init,javadoc-check-timestamps" unless="javadoc.up.to.date">
<xmlvalidate file="${javadoc.apichanges}" failonerror="true">
<xmlcatalog refid="nbantextcatalog" />
</xmlvalidate>
</target>
<target name="javadoc-stage-arch" depends="javadoc-init,javadoc-check-timestamps" unless="javadoc.up.to.date">
<taskdef name="arch" classname="org.netbeans.nbbuild.Arch">
<classpath>
<pathelement location="${nbantext.jar}"/>
</classpath>
</taskdef>
<!-- Warn about incorrect question version, but do not make build fail: -->
<property name="arch.warn" value="true"/>
<arch answers="${javadoc.arch}"
output="${javadoc.out.dir}/architecture-summary.html"
stylesheet="prose.css"
overviewlink="overview-summary.html"
footer="@FOOTER@"
project="${javadoc.project}"
/>
</target>
<target name="javadoc-stage-export-interfaces" depends="javadoc-init,javadoc-check-timestamps" unless="javadoc.interfaces.should.not.be.generated">
<taskdef name="arch" classname="org.netbeans.nbbuild.Arch">
<classpath>
<pathelement location="${nbantext.jar}"/>
</classpath>
</taskdef>
<!-- Warn about incorrect question version, but do not make build fail: -->
<property name="arch.warn" value="true"/>
<property name="arch.target" value="${javadoc.name}" />
<mkdir dir="${export.interfaces}"/>
<arch xsl="exportInterfaces.xsl" answers="${javadoc.arch}" output="${export.interfaces}/architecture-summary.html" stylesheet="prose.css"/>
<move file="${export.interfaces}/architecture-summary.html" tofile="${export.interfaces}/${javadoc.name}" />
<mkdir dir="${export.interfaces}/properties" />
<xslt style="exportInterfaceProperties.xsl" in="${export.interfaces}/${javadoc.name}" out="${export.interfaces}/properties/${javadoc.name}" >
<param name="code.name.base" expression="${javadoc.name}" />
</xslt>
<concat destfile="${export.interfaces}/properties/all.properties" >
<fileset dir="${export.interfaces}/properties/">
<include name="*" />
<exclude name="all.properties" />
</fileset>
</concat>
</target>
<target name="javadoc-stage-replace-apichanges" depends="javadoc-stage-main,javadoc-generate-references,javadoc-stage-alternative,javadoc-stage-apichanges,javadoc-stage-arch,javadoc-stage-export-interfaces" unless="javadoc.up.to.date" if="export.apichanges" >
<replace dir="${export.apichanges}" >
<include name="${javadoc.name}"/>
<replacefilter token="@JDK@" value="${javadoc.docs.jdk}"/>
<replacefilter token="@FOOTER@" value="${javadoc.footer}"/>
<replacefilter token="@TOP@/" value="@TOP@" />
<replacefilter token="@TOP@" value="${javadoc.name}/" />
&replaces;
</replace>
</target>
<target name="javadoc-stage-replace-interfaces" depends="javadoc-stage-main,javadoc-generate-references,javadoc-stage-alternative,javadoc-stage-apichanges,javadoc-stage-arch,javadoc-stage-export-interfaces" unless="javadoc.up.to.date" if="export.interfaces" >
<replace dir="${export.interfaces}" >
<include name="${javadoc.name}"/>
<replacefilter token="@JDK@" value="${javadoc.docs.jdk}"/>
<replacefilter token="@FOOTER@" value="${javadoc.footer}"/>
<replacefilter token="@TOP@/" value="@TOP@" />
<replacefilter token="@TOP@" value="${javadoc.name}/" />
&replaces;
</replace>
</target>
<target name="javadoc-stage-replace" depends="javadoc-stage-main,javadoc-generate-references,javadoc-stage-alternative,javadoc-stage-apichanges,javadoc-stage-arch,javadoc-stage-export-interfaces,javadoc-stage-replace-interfaces,javadoc-stage-replace-apichanges" unless="javadoc.up.to.date">
<replace dir="${javadoc.out.dir}">
<include name="**/*.html"/>
<replacefilter token="@JDK@" value="${javadoc.docs.jdk}"/>
&replaces;
<replacefilter token="@FOOTER@" value="${javadoc.footer}"/>
</replace>
<replace dir="${javadoc.out.dir}">
<include name="**/*.html"/>
<replacefilter token="http://root/" value="@TOP@.." />
</replace>
<replace dir="${javadoc.out.dir}">
<include name="**/*.html"/>
<replacefilter token="http://top/" value="@TOP@" />
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@/" value="@TOP@">
<include name="**/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}">
<replacetoken><![CDATA[<ul class="navList" title="Navigation">]]></replacetoken>
<replacevalue><![CDATA[<ul class="navList" title="Navigation"><li><a href="@TOP@apichanges.html">API Changes</a></li><li><a href="@TOP@architecture-summary.html">Architecture Summary</a></li>]]></replacevalue>
<include name="**/*.html"/>
<exclude name="**/**/architecture-summary.html,**/**/apichanges.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="">
<include name="*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../">
<include name="*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../">
<include name="*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../">
<include name="*/*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../../">
<include name="*/*/*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../../../">
<include name="*/*/*/*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../../../../">
<include name="*/*/*/*/*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../../../../../">
<include name="*/*/*/*/*/*/*/*.html"/>
</replace>
<replace dir="${javadoc.out.dir}" token="@TOP@" value="../../../../../../../../">
<include name="*/*/*/*/*/*/*/*/*.html"/>
</replace>
</target>
<target name="javadoc-stage-check" depends="javadoc-stage-replace" unless="javadoc.up.to.date">
<taskdef name="checklinks" classname="org.netbeans.nbbuild.CheckLinks">
<classpath>
<pathelement location="${nbantext.jar}"/>
</classpath>
</taskdef>
<checklinks basedir="${javadoc.out.dir}" checkexternal="${javadoc.check.external.links}"
report="${javadoc.out.dir}/checklinks-errors-${javadoc.name}.xml" checkspaces="false">
<include name="overview-summary.html"/>
<include name="apichanges.html"/>
<include name="architecture-summary.html"/>
<include name="**/package-summary.html"/>
<include name="**/doc-files/**/*.html"/>
<!-- XXX why are not all **/*.html checked? Would then need to allow e.g. http://blogs.sun.com/geertjan/entry/swing_outline_component from OutlineView.html -->
<!-- Make hyperlinks point to the source files, not the copied files: -->
<!-- XXX but line numbers are wrong in several cases! -->
<mapper type="glob" from="${javadoc.out.dir}/overview-summary.html" to="${javadoc.arch}"/>
<mapper type="glob" from="${javadoc.out.dir}/*/package-summary.html" to="${javadoc.docfiles}/*/package.html"/>
<mapper type="glob" from="${javadoc.out.dir}/*/package-summary.html" to="${javadoc.src}/*/package.html"/>
<mapper type="glob" from="${javadoc.out.dir}/apichanges.html" to="${javadoc.apichanges}"/>
<mapper type="glob" from="${javadoc.out.dir}/architecture-summary.html" to="${javadoc.arch}"/>
<mapper type="glob" from="${javadoc.out.dir}/*.html" to="${javadoc.docfiles}/*.html"/>
<mapper type="glob" from="${javadoc.out.dir}/*.html" to="${javadoc.src}/*.html"/>
&disallowed-links;
</checklinks>
<!-- XXX run doctorj (doctorj.sf.net) if it is installed? -->
</target>
<target name="javadoc" depends="javadoc-stage-check" unless="javadoc.up.to.date" description="Build Javadoc and associated documentation for a module.">
<zip zipfile="${javadoc.out.zip}" basedir="${javadoc.out.dir}"/>
</target>
</project>