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]