Summary: | javadoc task: sourcepath for JDK sources broken | ||
---|---|---|---|
Product: | Ant | Reporter: | Andr <andre.fuegenschuh> |
Component: | Core | Assignee: | Ant Notifications List <notifications> |
Status: | NEW --- | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 1.7.0 | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | Windows 2000 |
Description
Andr
2007-01-04 13:28:45 UTC
sourcepath does more than you think 8and yes, this has been added in 1.7.x). see also bug #47196 or bug #47790 and the updated documentation in svn revision 786510 Unfortunately I'm not familar enough with the Java6 standard doclet to know what it really needs for @inheritdocs to work. Maybe excludepackagenames="*" would work in combination with your sourcepath attribute. >> is there another (new?) way to get the desired behaviour? I finally managed to invent a workaround for getting the {@inheritDoc} (explicit or implied) to work with Ant. (I had updated bug #47790 before I saw this one) I ran into this issue while attempting to create a javadoc task equivalent to the following javadoc command which generates a couple hundred documentation files (http://code.google.com/p/filewise/source/browse/#svn/trunk/docs/api): javadoc -private -sourcepath /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/src -source 1.6 -J-Xmx128m -d docs/api src/com/filewise/*.java src/com/applcore/java/*/*.java As indicated, the following seemingly equivalent task definition "does more" in that it generates several thousand output files including doc for all of the JDK source files (requiring the memory to be increased to -Xmx768m), which takes about 25 minutes: <property name="sdk.java.src" location="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/src"/> <!-- that property is actually set differently with <whichresource> depending on whether we're on Mac, Linux or Windows --> <target name="doc" depends="init"> <javadoc access="protected" destdir="docs/api" source="1.6" maxmemory="768m"> <packageset dir="src"/> <sourcepath> <pathelement location="${sdk.java.src}"/> </sourcepath> </javadoc> </target> I tried the "don't specify the sourcepath attribute at all" solution, but then it no longer picks up the inherited comments from the JDK, which makes sense, since there's no longer anything to indicate where the JDK source files are. Thus all of the "Description copied from ..." comments disappeared from the output files. I tried adding "-sourcepath" as an additionalparam, but strangely it thought there was more than one "-sourcepath", until I replaced "<packageset>" with "<fileset>". So the final workaround for properly specifying the "-sourcepath" parameter appears to be: <target name="doc" depends="init"> <javadoc access="protected" destdir="docs/api" source="1.6" maxmemory="768m" additionalparam="-sourcepath ${sdk.java.src}"> <fileset dir="src"> <include name="*.java"/> <include name="**/*.java"/> </fileset> </javadoc> </target> It now generates only 250 files and runs in as little as 128m, or with more memory takes 25 seconds rather than 25 minutes. Rob S. http://Lnkd.com?24 |