aheritier 2004/07/09 11:50:48 Modified: javadoc plugin.jelly Log: To generate javadoc when sourceModifications are used, we copy in a temporary directory all the needed source files. Fix MPJAVADOC-32 Revision Changes Path 1.50 +78 -38 maven-plugins/javadoc/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/maven-plugins/javadoc/plugin.jelly,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- plugin.jelly 7 Jul 2004 23:01:12 -0000 1.49 +++ plugin.jelly 9 Jul 2004 18:50:48 -0000 1.50 @@ -29,24 +29,27 @@ > <!-- ================================================================== --> - <!-- Initialize plugin --> + <!-- Test if we need to call javadoc --> <!-- ================================================================== --> - - <goal name="javadoc:init" prereqs="xdoc:init"> - - <!-- 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.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> + + <define:taglib uri="javadoc"> + <define:tag name="init"> + <j:if test="${maven.javadoc.debug}"><ant:echo>javadoc init</ant:echo></j:if> + + <!-- internal variables --> + <j:set scope="parent" var="internal.javadoc.jar" value="${maven.build.dir}/${maven.final.name}_javadoc.jar"/> + <j:set scope="parent" var="internal.javadoc.needed" value="null"/> + <j:set scope="parent" var="internal.javadoc.working.dir" value="${maven.build.dir}/javadoc"/> + <j:set scope="parent" var="internal.javadoc.src.tmp" value="${internal.javadoc.working.dir}/src"/> + + <j:if test="${maven.javadoc.debug}"> + <ant:echo> ### Debug mode is on ### ================================== === java plugin properties === ================================== maven.compile.encoding = [${maven.compile.encoding}] +maven.compile.src.set = [${context.getAntProject().getReferences().get('maven.compile.src.set')}] ================================== === javadoc plugin properties === ================================== @@ -80,25 +83,18 @@ ================================== internal.javadoc.jar = [${internal.javadoc.jar}] internal.javadoc.needed = [${internal.javadoc.needed}] -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> + </ant:echo> + </j:if> + <j:if test="not ${maven.javadoc.debug}"> + <ant:echo> ### Debug mode is off ### - </ant:echo> - </j:if> + </ant:echo> + </j:if> - </goal> + <ant:mkdir dir="${internal.javadoc.working.dir}"/> + <ant:mkdir dir="${internal.javadoc.src.tmp}"/> - <!-- ================================================================== --> - <!-- Test if we need to call javadoc --> - <!-- ================================================================== --> - - <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="${internal.javadoc.needed != null}"> @@ -106,10 +102,46 @@ <j:if test="${maven.javadoc.debug}"><ant:echo>internal.javadoc.needed not null : ${internal.javadoc.needed}</ant:echo></j:if> </j:when> - <j:otherwise> + <j:otherwise> + + <!-- test if sourceModifications are defined --> + <j:if test="${pom.build.sourceModifications!=null && !pom.build.sourceModifications.isEmpty()}"> + <j:if test="${maven.javadoc.debug}"><ant:echo>sourceModifications used.</ant:echo></j:if> + <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('maven.compile.src.set')}</util:tokenize> + <ant:copy todir="${internal.javadoc.src.tmp}"> + <j:forEach var="dir" items="${sources.dirs}"> + <ant:fileset dir="${dir}"> + <ant:include name="**/*.java"/> + <ant:include name="**/doc-files/**/*"/> + <!-- handle source modifications --> + <j:forEach var="sm" items="${pom.build.sourceModifications}"> + <ant:available property="classPresent" classname="${sm.className}"/> + <j:if test="${classPresent != 'true'}"> + <j:forEach var="exclude" items="${sm.excludes}"> + <ant:exclude name="${exclude}"/> + </j:forEach> <!-- end sourceModification exclude --> + <j:forEach var="include" items="${sm.includes}"> + <ant:include name="${include}"/> + </j:forEach> <!-- end sourceModification include --> + </j:if> + </j:forEach> <!-- end sourceModification --> + </ant:fileset> + </j:forEach> + </ant:copy> + <ant:path id="internal.javadoc.sources"> + <ant:pathelement location="${internal.javadoc.src.tmp}"/> + </ant:path> + </j:if> + <!-- test if sourceModifications aren't defined --> + <j:if test="${pom.build.sourceModifications==null || pom.build.sourceModifications.isEmpty()}"> + <j:if test="${maven.javadoc.debug}"><ant:echo>sourceModifications not used.</ant:echo></j:if> + <ant:path id="internal.javadoc.sources"> + <ant:pathelement path="${context.getAntProject().getReferences().get('maven.compile.src.set')}"/> + </ant:path> + </j:if> <!-- Tokenize the set of directories --> - <util:tokenize var="sources.dirs" delim="${path.separator}">${internal.javadoc.src.set}</util:tokenize> + <util:tokenize var="sources.dirs" delim="${path.separator}">${context.getAntProject().getReferences().get('internal.javadoc.sources')}</util:tokenize> <!-- For each directory --> <j:forEach var="dir" items="${sources.dirs}"> @@ -133,7 +165,7 @@ <j:if test="${maven.javadoc.debug}"> <ant:echo>internal.javadoc.needed is ${internal.javadoc.needed}</ant:echo> </j:if> - + </define:tag> </define:taglib> @@ -142,9 +174,9 @@ <!-- J A V A D O C S R E P O R T S --> <!-- ================================================================== --> - <goal name="maven-javadoc-plugin:register"> + <goal name="maven-javadoc-plugin:register" prereqs="xdoc:init"> - <javadoc:check-needed/> + <javadoc:init/> <j:if test="${internal.javadoc.needed}"> <doc:registerReport @@ -164,8 +196,15 @@ </goal> <goal name="maven-javadoc-plugin:deregister"> - <doc:deregisterReport name="JavaDocs"/> - <doc:deregisterReport name="JavaDoc Report"/> + + <javadoc:init/> + + <j:if test="${internal.javadoc.needed}"> + + <doc:deregisterReport name="JavaDocs"/> + <doc:deregisterReport name="JavaDoc Report"/> + + </j:if> </goal> <!-- ================================================================== --> @@ -173,10 +212,9 @@ <!-- ================================================================== --> <goal name="maven-javadoc-plugin:report" - prereqs="javadoc:init" - description="Generate API documentation"> + description="Generate API documentation" prereqs="xdoc:init"> - <javadoc:check-needed/> + <javadoc:init/> <j:if test="${internal.javadoc.needed}"> @@ -245,7 +283,7 @@ > <ant:sourcepath> - <ant:path refid="maven.compile.src.set"/> + <ant:path refid="internal.javadoc.sources"/> </ant:sourcepath> <j:if test="${context.getVariable('maven.javadoc.source') != null}"> @@ -378,6 +416,8 @@ section="Javadoc Report" inputText="${inputText}" output="${genDocs}/javadoc.xml"/> + + <ant:delete dir="${internal.javadoc.src.tmp}"/> </j:if>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]