aheritier 2004/06/28 16:14:24 Modified: javadoc plugin.jelly javadoc/xdocs changes.xml properties.xml Log: - Add the property maven.javadoc.debug - MPJAVADOC-28 partially fixed : @link tag not working with package names. - MPJAVADOC-29 partially fixed : Packages list broken on jdk 1.3 for multiple packages. Revision Changes Path 1.44 +198 -71 maven-plugins/javadoc/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/maven-plugins/javadoc/plugin.jelly,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- plugin.jelly 9 Jun 2004 21:54:38 -0000 1.43 +++ plugin.jelly 28 Jun 2004 23:14:24 -0000 1.44 @@ -28,30 +28,90 @@ xmlns:maven="jelly:maven" > - <goal name="maven-javadoc-plugin:register"> - - <javadoc:check-needed/> - - <j:if test="${needed}"> - <doc:registerReport - name="JavaDocs" - pluginName="maven-javadoc-plugin" - link="apidocs/index" - target="_blank" - description="JavaDoc API documentation." - /> - <doc:registerReport - name="JavaDoc Report" - pluginName="" - link="javadoc" - description="Report on the generation of JavaDoc." - /> - </j:if> - </goal> + <!-- ================================================================== --> + <!-- Initialize plugin --> + <!-- ================================================================== --> - <goal name="maven-javadoc-plugin:deregister"> - <doc:deregisterReport name="JavaDocs"/> - <doc:deregisterReport name="JavaDoc Report"/> + <goal name="javadoc:init" prereqs="xdoc:init"> + <!-- javadoc plugin properties --> + <maven:get var="maven.javadoc.additionalparam" plugin="maven-javadoc-plugin" property="maven.javadoc.additionalparam"/> + <maven:get var="maven.javadoc.author" plugin="maven-javadoc-plugin" property="maven.javadoc.author"/> + <maven:get var="maven.javadoc.customtags" plugin="maven-javadoc-plugin" property="maven.javadoc.customtags"/> + <maven:get var="maven.javadoc.debug" plugin="maven-javadoc-plugin" property="maven.javadoc.debug"/> + <maven:get var="maven.javadoc.destdir" plugin="maven-javadoc-plugin" property="maven.javadoc.destdir"/> + <maven:get var="maven.javadoc.doclet" plugin="maven-javadoc-plugin" property="maven.javadoc.doclet"/> + <maven:get var="maven.javadoc.docletpath" plugin="maven-javadoc-plugin" property="maven.javadoc.docletpath"/> + <maven:get var="maven.javadoc.links" plugin="maven-javadoc-plugin" property="maven.javadoc.links"/> + <maven:get var="maven.javadoc.locale" plugin="maven-javadoc-plugin" property="maven.javadoc.locale"/> + <maven:get var="maven.javadoc.maxmemory" plugin="maven-javadoc-plugin" property="maven.javadoc.maxmemory"/> + <maven:get var="maven.javadoc.mode.online" plugin="maven-javadoc-plugin" property="maven.javadoc.mode.online"/> + <maven:get var="maven.javadoc.offlineLinks" plugin="maven-javadoc-plugin" property="maven.javadoc.offlineLinks"/> + <maven:get var="maven.javadoc.overview" plugin="maven-javadoc-plugin" property="maven.javadoc.overview"/> + <maven:get var="maven.javadoc.package" plugin="maven-javadoc-plugin" property="maven.javadoc.package"/> + <maven:get var="maven.javadoc.private" plugin="maven-javadoc-plugin" property="maven.javadoc.private"/> + <maven:get var="maven.javadoc.public" plugin="maven-javadoc-plugin" property="maven.javadoc.public"/> + <maven:get var="maven.javadoc.source" plugin="maven-javadoc-plugin" property="maven.javadoc.source"/> + <maven:get var="maven.javadoc.stylesheet" plugin="maven-javadoc-plugin" property="maven.javadoc.stylesheet"/> + <maven:get var="maven.javadoc.tagletpath" plugin="maven-javadoc-plugin" property="maven.javadoc.tagletpath"/> + <maven:get var="maven.javadoc.taglets" plugin="maven-javadoc-plugin" property="maven.javadoc.taglets"/> + <maven:get var="maven.javadoc.use" plugin="maven-javadoc-plugin" property="maven.javadoc.use"/> + <maven:get var="maven.javadoc.useexternalfile" plugin="maven-javadoc-plugin" property="maven.javadoc.useexternalfile"/> + <maven:get var="maven.javadoc.version" plugin="maven-javadoc-plugin" property="maven.javadoc.version"/> + <maven:get var="maven.javadoc.windowtitle" plugin="maven-javadoc-plugin" property="maven.javadoc.windowtitle"/> + + <!-- internal variables --> + <j:set var="internal.javadoc.jar" value="${maven.build.dir}/${maven.final.name}_javadoc.jar"/> + <j:set var="internal.javadoc.needed" value="null"/> + <j:set var="internal.javadoc.src.modifs" value="false"/> + <j:set var="internal.javadoc.src.set" value="${context.getAntProject().getReferences().get('maven.compile.src.set')}"/> + <j:set var="internal.javadoc.working.dir" value="${maven.build.dir}/javadoc"/> + + <j:if test="${maven.javadoc.debug}"> + <ant:echo> +### Debug mode is on ### +================================== +=== javadoc plugin properties === +================================== +maven.javadoc.additionalparam = [${maven.javadoc.additionalparam}] +maven.javadoc.author = [${maven.javadoc.author}] +maven.javadoc.customtags = [${maven.javadoc.customtags}] +maven.javadoc.debug = [${maven.javadoc.debug}] +maven.javadoc.destdir = [${maven.javadoc.destdir}] +maven.javadoc.doclet = [${maven.javadoc.doclet}] +maven.javadoc.docletpath = [${maven.javadoc.docletpath}] +maven.javadoc.links = [${maven.javadoc.links}] +maven.javadoc.locale = [${maven.javadoc.locale}] +maven.javadoc.maxmemory = [${maven.javadoc.maxmemory}] +maven.javadoc.mode.online = [${maven.javadoc.mode.online}] +maven.javadoc.offlineLinks = [${maven.javadoc.offlineLinks}] +maven.javadoc.overview = [${maven.javadoc.overview}] +maven.javadoc.package = [${maven.javadoc.package}] +maven.javadoc.private = [${maven.javadoc.private}] +maven.javadoc.public = [${maven.javadoc.public}] +maven.javadoc.source = [${maven.javadoc.source}] +maven.javadoc.stylesheet = [${maven.javadoc.stylesheet}] +maven.javadoc.tagletpath = [${maven.javadoc.tagletpath}] +maven.javadoc.taglets = [${maven.javadoc.taglets}] +maven.javadoc.use = [${maven.javadoc.use}] +maven.javadoc.useexternalfile = [${maven.javadoc.useexternalfile}] +maven.javadoc.version = [${maven.javadoc.version}] +maven.javadoc.windowtitle = [${maven.javadoc.windowtitle}] +================================== +=== javadoc internal variables === +================================== +internal.javadoc.jar = [${internal.javadoc.jar}] +internal.javadoc.needed = [${internal.javadoc.needed}] +internal.javadoc.src.modifs = [${internal.javadoc.src.modifs}] +internal.javadoc.src.set = [${internal.javadoc.src.set}] +internal.javadoc.working.dir = [${internal.javadoc.working.dir}] + </ant:echo> + </j:if> + <j:if test="not ${maven.javadoc.debug}"> + <ant:echo> +### Debug mode is off ### + </ant:echo> + </j:if> + </goal> <!-- ================================================================== --> @@ -60,17 +120,14 @@ <define:taglib uri="javadoc"> <define:tag name="check-needed"> - + <j:if test="${maven.javadoc.debug}"><ant:echo>check-needed</ant:echo></j:if> <j:choose> - <j:when test="${needed != null}"> + <j:when test="${internal.javadoc.needed != null}"> <!-- We have already decided if javadoc is needed --> + <j:if test="${maven.javadoc.debug}"><ant:echo>${internal.javadoc.needed} not null</ant:echo></j:if> </j:when> - - <j:when test="${sourcesPresent != 'true'}"> - <j:set var="needed" value="false" /> - </j:when> - + <j:otherwise> <!-- Create a patternset for source modifications --> <patternset id="source.modifications"> @@ -88,9 +145,18 @@ </j:if> </j:forEach> <!-- end sourceModification --> </patternset> + + <!-- test if sourceModifications are defined --> + <j:if test="${pom.build.sourceModifications != null && !pom.build.sourceModifications.isEmpty()}"> + <j:set var="internal.javadoc.src.modifs" scope="parent" value="true"/> + </j:if> + + <j:if test="${maven.javadoc.debug}"> + <ant:echo>internal.javadoc.src.modifs is ${internal.javadoc.src.modifs}</ant:echo> + </j:if> <!-- Tokenize the set of directories --> - <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize> + <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize> <!-- Counter used to name filesets --> <j:set var="src.set.counter" value="0"/> @@ -98,7 +164,7 @@ <!-- For each directory --> <j:forEach var="dir" items="${sources.dirs}"> <!-- If we have not already find sources --> - <j:if test="${needed != true}"> + <j:if test="${internal.javadoc.needed != true}"> <!-- We construct the fileset --> <ant:fileset id="${src.set.counter}" dir="${dir}"> <patternset refid="source.modifications"/> @@ -108,7 +174,7 @@ <ant:fileset refid="${src.set.counter}" /> </ant:fileScanner> - <j:set var="needed" scope="parent" + <j:set var="internal.javadoc.needed" scope="parent" value="${sources.iterator().hasNext()}" /> <j:set var="src.set.counter" value="${src.set.counter + 1}"/> @@ -118,24 +184,55 @@ </j:otherwise> </j:choose> + <j:if test="${maven.javadoc.debug}"> + <ant:echo>internal.javadoc.needed is ${internal.javadoc.needed}</ant:echo> + </j:if> + </define:tag> </define:taglib> + <!-- ================================================================== --> - <!-- J A V A D O C S --> + <!-- J A V A D O C S R E P O R T S --> <!-- ================================================================== --> - <!-- Some aliases for ease of use and backward compat. --> - <goal name="javadoc:generate" prereqs="maven-javadoc-plugin:report"/> - <goal name="javadoc" prereqs="maven-javadoc-plugin:report"/> + <goal name="maven-javadoc-plugin:register"> + + <javadoc:check-needed/> + + <j:if test="${internal.javadoc.needed}"> + <doc:registerReport + name="JavaDocs" + pluginName="maven-javadoc-plugin" + link="apidocs/index" + target="_blank" + description="JavaDoc API documentation." + /> + <doc:registerReport + name="JavaDoc Report" + pluginName="" + link="javadoc" + description="Report on the generation of JavaDoc." + /> + </j:if> + </goal> + + <goal name="maven-javadoc-plugin:deregister"> + <doc:deregisterReport name="JavaDocs"/> + <doc:deregisterReport name="JavaDoc Report"/> + </goal> + + <!-- ================================================================== --> + <!-- J A V A D O C S --> + <!-- ================================================================== --> <goal name="maven-javadoc-plugin:report" - prereqs="xdoc:init" + prereqs="javadoc:init" description="Generate API documentation"> <javadoc:check-needed/> - <j:if test="${needed}"> + <j:if test="${internal.javadoc.needed}"> <ant:mkdir dir="${maven.javadoc.destdir}"/> @@ -180,8 +277,8 @@ <j:set var="maxMemory" value="${maven.javadoc.maxmemory}" /> - <ant:mkdir dir="${maven.build.dir}/javadoc/" /> - <ant:record name="${maven.build.dir}/javadoc/report.txt" action="start" /> + <ant:mkdir dir="${internal.javadoc.working.dir}" /> + <ant:record name="${internal.javadoc.working.dir}/report.txt" action="start" /> <ant:javadoc packagenames="${pom.package}.*" @@ -198,20 +295,35 @@ stylesheetfile="${maven.javadoc.stylesheet}" additionalparam="${maven.javadoc.additionalparam}" useexternalfile="${maven.javadoc.useexternalfile}" + verbose="${maven.javadoc.debug}" > - <!-- Tokenize the set of directories --> - <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize> - - <j:forEach var="dir" items="${sources.dirs}"> - - <echo>[${dir}] added to javadoc sources</echo> - <ant:fileset dir="${dir}"> - <patternset refid="source.modifications"/> - </ant:fileset> - - </j:forEach> <!-- dir in maven.compile.src.set --> + <j:if test="${internal.javadoc.src.modifs == true}"> + <j:if test="${maven.javadoc.debug}"> + <ant:echo>Javadoc uses a fileset</ant:echo> + </j:if> + <!-- Tokenize the set of directories --> + <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize> + + <j:forEach var="dir" items="${sources.dirs}"> + + <echo>[${dir}] added to javadoc sources</echo> + <ant:fileset dir="${dir}"> + <patternset refid="source.modifications"/> + </ant:fileset> + + </j:forEach> <!-- dir in maven.compile.src.set --> + </j:if> + <j:if test="${internal.javadoc.src.modifs != true}"> + <j:if test="${maven.javadoc.debug}"> + <ant:echo>Javadoc uses a source path</ant:echo> + </j:if> + <ant:sourcepath> + <ant:path refid="maven.compile.src.set"/> + </ant:sourcepath> + </j:if> + <j:if test="${context.getVariable('maven.javadoc.source') != null}"> <ant:setProperty name="source" value="${maven.javadoc.source}" /> </j:if> @@ -298,12 +410,12 @@ </ant:javadoc> - <ant:record name="${maven.build.dir}/javadoc/report.txt" action="stop" /> + <ant:record name="${internal.javadoc.working.dir}/report.txt" action="stop" /> <j:set var="genDocs" value="${maven.gen.docs}" /> <!-- load file in order to remove absolute paths --> - <util:file name="${maven.build.dir}/javadoc/report.txt" var="inputFileObject"/> + <util:file name="${internal.javadoc.working.dir}/report.txt" var="inputFileObject"/> <util:loadText var="inputText" file="${inputFileObject}"/> <!-- remove [javadoc] prefix from rows --> @@ -334,34 +446,40 @@ section="Javadoc Report" inputText="${inputText}" output="${genDocs}/javadoc.xml"/> - - <!-- - Because we use in the javadoc task a fileset and not a packageset - (to allow sourceModifications) the javadoc doesn't copy - automatically doc-files directories. - We must do it manually. - --> - <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize> - <ant:copy todir="${maven.javadoc.destdir}"> - <j:forEach var="dir" items="${sources.dirs}"> - <ant:fileset dir="${dir}"> - <ant:include name="**/doc-files/**/*"/> - </ant:fileset> - </j:forEach> - </ant:copy> + + <j:if test="${internal.javadoc.src.modifs}"> + <!-- + Because we use in the javadoc task a fileset and not a packageset + (to allow sourceModifications) the javadoc doesn't copy + automatically doc-files directories. + We must do it manually. + --> + <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize> + <ant:copy todir="${maven.javadoc.destdir}"> + <j:forEach var="dir" items="${sources.dirs}"> + <ant:fileset dir="${dir}"> + <ant:include name="**/doc-files/**/*"/> + </ant:fileset> + </j:forEach> + </ant:copy> + </j:if> </j:if> - <j:if test="${!needed}"> + <j:if test="not ${internal.javadoc.needed}"> <ant:echo>No sources found. Javadoc not created !</ant:echo> </j:if> </goal> + + <!-- ================================================================== --> + <!-- P A C K A G E A N D D E P L O Y J A V A D O C S --> + <!-- ================================================================== --> <!--==================================================================--> <!-- Create a jar file containing the javadoc --> <!--==================================================================--> <goal name="javadoc:jar" prereqs="javadoc"> <j:set var="maven.javadoc.final.name" - value="${maven.build.dir}/${maven.final.name}_javadoc.jar" /> + value="${internal.javadoc.jar}" /> <ant:jar destfile="${maven.javadoc.final.name}" basedir="${maven.javadoc.destdir}" @@ -424,4 +542,13 @@ project="${pom}"/> </goal> + + <!-- ================================================================== --> + <!-- B A C K W A R D C O M P A T I B I L I T Y --> + <!-- ================================================================== --> + + <!-- Some aliases for ease of use and backward compat. --> + <goal name="javadoc:generate" prereqs="maven-javadoc-plugin:report"/> + <goal name="javadoc" prereqs="maven-javadoc-plugin:report"/> + </project> 1.33 +3 -0 maven-plugins/javadoc/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/maven-plugins/javadoc/xdocs/changes.xml,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- changes.xml 9 Jun 2004 21:54:38 -0000 1.32 +++ changes.xml 28 Jun 2004 23:14:24 -0000 1.33 @@ -24,6 +24,9 @@ </properties> <body> <release version="1.5.1-SNAPSHOT" date="In CVS"> + <action dev="aheritier" type="fix" issue="MPJAVADOC-29">Packages list broken on jdk 1.3 for multiple packages.</action> + <action dev="aheritier" type="fix" issue="MPJAVADOC-28">@link tag not working with package names.</action> + <action dev="aheritier" type="add">Add the property maven.javadoc.debug to print informations to debug the plugin.</action> <action dev="aheritier" type="fix" issue="MPJAVADOC-26" due-to="Denis McLaughlin">Fix the needed flag when there's an empty sources directory.</action> <action dev="aheritier" type="fix" issue="MPJAVADOC-24">doc-files directories contents are correctly copied.</action> <action dev="brett" type="fix" issue="MPJAVADOC-5">Add support for multiple source directories.</action> 1.15 +8 -0 maven-plugins/javadoc/xdocs/properties.xml Index: properties.xml =================================================================== RCS file: /home/cvs/maven-plugins/javadoc/xdocs/properties.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- properties.xml 9 Jun 2004 22:28:03 -0000 1.14 +++ properties.xml 28 Jun 2004 23:14:24 -0000 1.15 @@ -74,6 +74,14 @@ </td> </tr> <tr> + <td>maven.javadoc.debug</td> + <td>Yes</td> + <td> + Print informations to debug the plugin. + The default value is <code>false</code>. + </td> + </tr> + <tr> <td>maven.javadoc.destdir</td> <td>Yes</td> <td>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]