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]