Hi Brett!

> I think an independent plugin hosted on maven-plugins.sf.net is the
> best approach here.
> 
> - Brett
Cool!  That should be my next step.  I take a look at it.

> > Just tried the extension on Jira.  I got 49 errors, whereas Doc Check
> > reported 163.  The extension picks up only malformed tags, but Doc Check
> > picks up missing tags also.
> > I'll go ahead and put Doc Check into the plugin, and I guess I should
> > talk to the Sun people about it...  Or if it is easy to make an
> > independent plugin, I'll try that also.
Meanwhile, here's my nasty javadoc-plugin extension:

Added to MY build.properties:
    maven.doccheck.doclet=com.sun.tools.doclets.doccheck.DocCheck
    maven.doccheck.docletpath=${basedir}/lib/doccheck.jar

Added to plugin.properties:
    maven.doccheck.destdir=${maven.docs.dest}/doccheck

Added to plugin.jelly: (Ready for the nasty part? ;-))
# in maven-javadoc-plugin:register
      <doc:registerReport 
        name="JavaDocs DocCheck Report"
        pluginName=""
        link="doccheck/index"
        target="_blank"
        description="JavaDoc DocCheck."
        />
# in maven-javadoc-plugin:deregister
      <doc:deregisterReport name="JavaDocs DocCheck Report"/>
#in maven-javadoc-plugin:report
      <ant:mkdir dir="${maven.doccheck.destdir}"/>
      <ant:javadoc
        packagenames="${pom.package}.*"
        destdir="${maven.doccheck.destdir}"
        author="${maven.javadoc.author}"
        public="${maven.javadoc.public}"
        package="${maven.javadoc.package}" 
        private="${maven.javadoc.private}"
        version="${maven.javadoc.version}"
        additionalparam="${maven.doccheck.additionalparam}"
        useexternalfile="${maven.javadoc.useexternalfile}"
        verbose="${maven.javadoc.debug}"
        >

        <ant:sourcepath>
          <ant:path refid="internal.javadoc.sources"/>
        </ant:sourcepath>
        
        <j:if test="${context.getVariable('maven.javadoc.source') != null}">
          <ant:setProperty name="source" value="${maven.javadoc.source}" />
        </j:if>

        <j:if test="${context.getVariable('maven.compile.encoding') != null}">
          <ant:setProperty name="encoding" value="${maven.compile.encoding}" />
        </j:if>
        
        <j:if test="${context.getVariable('maven.javadoc.excludepackagenames') != 
null}">
          <ant:setProperty name="excludepackagenames" 
value="${maven.javadoc.excludepackagenames}" />
        </j:if>

        <!-- Process/Parse links -->
        <!-- This code allows to specify a packagelistLoc even when in online mode -->
        <j:forEach var="link" items="${links}">
          <j:set var="pos" value="${link.indexOf('#')}" />
    
          <!-- set href and packagelistLoc -->
          <j:choose>
            <!-- I am bad with jelly, the test is: "pos == -1" -->
            <j:when test="${1+pos == 0}">
              <j:set var="href" value="${link.trim()}" />
              <j:set var="packagelistLoc" value="${href}"/>
            </j:when>
            <j:otherwise>
              <j:set var="href" value="${link.substring(0,pos).trim()}"/>
              <j:set var="packagelistLoc" 
value="${link.substring(pos).substring(1).trim()}"/>
            </j:otherwise>
          </j:choose>
    
          <!-- generate the link -->
          <j:choose>
            <j:when test="${online}" >
          <ant:link href="${href}" offline="false" packagelistLoc="${packagelistLoc}" 
/>
            </j:when>
            <j:otherwise>
          <ant:link href="${href}" offline="true" packagelistLoc="${packagelistLoc}" />
            </j:otherwise>
          </j:choose>
        </j:forEach>
    
        <ant:classpath>
          <ant:path refid="maven.dependency.classpath"/>
          <ant:path location="${maven.build.dest}"/>
        </ant:classpath>
    
        <j:if test="${context.getVariable('maven.javadoc.locale') != null}">
          <ant:setProperty name="locale" value="${maven.javadoc.locale}" />
        </j:if>
    
        <j:if test="${context.getVariable('maven.javadoc.overview') != null}">
          <ant:setProperty name="overview" value="${maven.javadoc.overview}" />
        </j:if>
    
        <j:if test="${maxMemory != null}">
          <ant:setProperty name="maxmemory" value="${maven.javadoc.maxmemory}" />
        </j:if>
    
        <j:forEach var="packageGroup" items="${pom.packageGroups}">
          <ant:group title="${packageGroup.title}" 
packages="${packageGroup.packages}"/>
        </j:forEach>
    
        <!-- allow custom doclets -->    
        <j:if test="${context.getVariable('maven.doccheck.doclet') != null}">
          <ant:setProperty name="doclet" value="${maven.doccheck.doclet}" />
        </j:if>
        <j:if test="${context.getVariable('maven.doccheck.docletpath') != null}">
          <ant:setProperty name="docletpath" value="${maven.doccheck.docletpath}" />
        </j:if>
    
        <!-- allow custom tags -->    
        <util:tokenize var="listOfTags" delim=" 
">${maven.javadoc.customtags}</util:tokenize>
        <j:forEach var="someTag" items="${listOfTags}">
          <j:set var="nameVar" value="${someTag}.name"/>
          <j:set var="name" value="${context.findVariable(nameVar)}"/>
          <j:set var="descriptionVar" value="${someTag}.description"/>
          <j:set var="description" value="${context.findVariable(descriptionVar)}"/>
          <j:set var="enabledVar" value="${someTag}.enabled"/>
          <j:set var="enabled" value="${context.findVariable(enabledVar)}"/>
          <j:set var="scopeVar" value="${someTag}.scope"/>
          <j:set var="scope" value="${context.findVariable(scopeVar)}"/>
          <ant:tag name="${name}" description="${description}"
           enabled="${enabled}" scope="${scope}"/>
        </j:forEach>
    
        <!-- allow taglets -->
        <util:tokenize var="listOfTaglets" delim="," 
trim="true">${maven.javadoc.taglets}</util:tokenize>
        <j:set var="tagletPath" 
value="${context.getVariable('maven.javadoc.tagletpath')}" />
        <j:forEach var="someTaglet" items="${listOfTaglets}">
          <ant:taglet name="${someTaglet}" path="${tagletPath}" />
        </j:forEach>

      </ant:javadoc>

Best regards,
-- Shinobu Kawai

--
Shinobu Kawai <[EMAIL PROTECTED], [EMAIL PROTECTED]>



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

Reply via email to