You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bu...@apache.org on 2009/11/29 02:18:51 UTC

DO NOT REPLY [Bug 41292] javadoc task: sourcepath for JDK sources broken

https://issues.apache.org/bugzilla/show_bug.cgi?id=41292

Robert Simpson <ro...@MailScreen.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |robs.apache4@MailScreen.com

--- Comment #2 from Robert Simpson <ro...@MailScreen.com> 2009-11-28 17:18:49 UTC ---
>> 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

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.