I have a patch for macrodef which allows  macrodef to have (nearly)
arbitrary xml
fragments:

<macrodef name="thecommonlinks">
  <sequential>
    <!-- This part is very common : Start -->
     <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/";
      packagelistLoc="javadoc/j2se-1.5.0"/>
     <link offline="true" href="http://java.sun.com/javaee/5/docs/api/";
      packagelistLoc="javadoc/javaee-5"/>
     <link href="http://lab.ourserver.com/javadoc/common/"/>
     <link href="http://lab.ourserver.com/javadoc/dist/"/>
     <link href="http://lab.ourserver.com/javadoc/ejb/"/>
     <link href="http://lab.ourserver.com/javadoc/web/"/>
  </sequential>
</macrodef>


<javadoc destdir="${javadoc.dir}/common"
   classpathref="path.combined"
    windowtitle="SOM Common API Doc"
    encoding="UTF-8"
    charset="UTF-8"
    access="private">
   <thecommonlinks/>
   <fileset dir="${somCommon.dir}/src">
   <include name="**/*.java"/>
   </fileset>
  </javadoc>

(https://issues.apache.org/bugzilla/show_bug.cgi?id=40678)
I have some issues with it - namely the reporting of errors - the code
currently cannot see the full ant script stack trace to report errors.

In the meantime, you should use <presetdef>

<presetdef name="myjavadoc">
<javadoc
  encoding="UTF-8"
  charset="UTF-8"
  access="private">
 <!-- This part is very common : Start -->
 <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/";
packagelistLoc="javadoc/j2se-1.5.0"/>
 <link offline="true" href="http://java.sun.com/javaee/5/docs/api/";
packagelistLoc="javadoc/javaee-5"/>
 <link href="http://lab.ourserver.com/javadoc/common/"/>
 <link href="http://lab.ourserver.com/javadoc/dist/"/>
 <link href="http://lab.ourserver.com/javadoc/ejb/"/>
 <link href="http://lab.ourserver.com/javadoc/web/"/>
 <link href="http://lab.ourserver.com/javadoc/downloadClient/"/>
 <!-- This part is very common : End -->
 </javadoc>
</presetdef>

<myjavadoc
   destdir="${javadoc.dir}/common"
   classpathref="path.combined"
   windowtitle="SOM Common API Doc">
 <fileset dir="${somCommon.dir}/src">
     <include name="**/*.java"/>
 </fileset>
</myjavadoc>

Peter

On Fri, Mar 14, 2008 at 10:28 AM, Kent Larsson <[EMAIL PROTECTED]> wrote:
> Hi,
>
>  In our Ant script to build Javadoc we have lots of <link ...>'s inside
>  our <javadoc ...>'s where the <link ...>'s are duplicated into most of
>  our <javadoc ...>'s. We would like to reference these so we don't have
>  the same lines of code in lots of places in the build script. We have
>  tried googling and reading the Ant and Javadoc manuals without success.
>
>  /* Start of example Javadoc Ant snippet */
>  <javadoc destdir="${javadoc.dir}/common"
>    classpathref="path.combined"
>    windowtitle="SOM Common API Doc"
>    encoding="UTF-8"
>    charset="UTF-8"
>    access="private">
>   <!-- This part is very common : Start -->
>   <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/";
>  packagelistLoc="javadoc/j2se-1.5.0"/>
>   <link offline="true" href="http://java.sun.com/javaee/5/docs/api/";
>  packagelistLoc="javadoc/javaee-5"/>
>   <link href="http://lab.ourserver.com/javadoc/common/"/>
>   <link href="http://lab.ourserver.com/javadoc/dist/"/>
>   <link href="http://lab.ourserver.com/javadoc/ejb/"/>
>   <link href="http://lab.ourserver.com/javadoc/web/"/>
>   <link href="http://lab.ourserver.com/javadoc/downloadClient/"/>
>   <!-- This part is very common : End -->
>   <fileset dir="${somCommon.dir}/src">
>   <include name="**/*.java"/>
>   </fileset>
>   </javadoc>
>  /* End of example Javadoc Ant snippet */
>
>  Is there a way to bundle the links so they may be referenced? Something
>  similar to:
>
>  /* Start of example pseudo-code Javadoc Ant snippet */
>  <linkbundle name="thecommonlinks">
>   <!-- This part is very common : Start -->
>   <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/";
>  packagelistLoc="javadoc/j2se-1.5.0"/>
>   <link offline="true" href="http://java.sun.com/javaee/5/docs/api/";
>  packagelistLoc="javadoc/javaee-5"/>
>   <link href="http://lab.ourserver.com/javadoc/common/"/>
>   <link href="http://lab.ourserver.com/javadoc/dist/"/>
>   <link href="http://lab.ourserver.com/javadoc/ejb/"/>
>   <link href="http://lab.ourserver.com/javadoc/web/"/>
>   <!-- This part is very common : End -->
>  </linkbudle>
>
>  <javadoc destdir="${javadoc.dir}/common"
>    classpathref="path.combined"
>    windowtitle="SOM Common API Doc"
>    encoding="UTF-8"
>    charset="UTF-8"
>    access="private">
>   <linkbudlereference name="thecommonlinks"/>
>   <fileset dir="${somCommon.dir}/src">
>   <include name="**/*.java"/>
>   </fileset>
>  </javadoc>
>  /* End of example pseudo-code Javadoc Ant snippet */
>
>  As we have 7-8 <javadoc> tags (to build individual javadocs when we
>  don't want to build them all) it would be nice and clean to reference
>  common <link> tags in some way.
>
>  Thanks for reading!
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to