Mark Crocker wrote on 2006-10-27 10:41:27:
> Mark Crocker wrote on 2006-10-10 08:30:19:
>> How do I get the maven-javadoc-plugin to include the test classes as
>> well as the runtime classes when generating Javadocs?
> I was hoping for something a little more like the jxr plugin, which
> creates TWO sets of cross reference sets... one for the main source
> code and one for the test source code.
> From the command line, this can be accomplished simply by using two
> commands for javadocs:
> mvn javadoc:javadoc
> mvn -Dsourcepath=src/test/java -DdestDir=target/site/testapidocs
> javadoc:javadoc
> The first simply generates the usual javadocs without test cases and
> the second does the test javadocs and puts them in the testapidocs
directory.
> Getting the same effect from the pom.xml is giving me trouble. I'll
> follow-up when I've made some progress.
Well, I found that I could add:
<reportSet>
<id>test-html</id>
<configuration>
<sourcepath>src/test/java</sourcepath>
<destDir>target/site/testapidocs</destDir>
<show>private</show>
</configuration>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
and that would create a set of test documentation iff I had it as the first
report set. However, the regular javadocs then refused to run and produced
the following message:
[INFO] Skipped "JavaDocs" report, file "apidocs/index.html" already
exists for the English version.
The result was test Javadocs in the testapi directory and nothing but a
blank index.html in the apidocs directory. If I reverse the order of the
report sets, then the regular main code javadocs works find and the test
javadocs are skipped altogether.
The solution was provided by [MJAVADOC-81]
(http://jira.codehaus.org/browse/MJAVADOC-81), which is basically to use
version 2.1 of the maven-javadoc-plugin. However, it wasn't smooth sailing
as there were some significant, inconsistent, changes in some of the tags.
For example, using the destDir path above is won't work and using
${project.build.directory}/testapidocs in destDir would put the end result
in target/site/target/site/testapidocs (or something to that effect).
However, the sourcepath isn't relative anymore and does require
${basedir}/src/test/java to work.
I also can't really figure out how to use the new outputName tag. I was
hoping that it would be used for the link to the uml/graph.dot file, but
instead the link is uml/index.html, which doesn't exist.
The whole javadoc report configuration ends up being:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.1</version>
<reportSets>
<reportSet>
<id>html</id>
<configuration>
<show>private</show>
<doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
<docletArtifact>
<groupId>gr.spinellis</groupId>
<artifactId>UmlGraph</artifactId>
<version>4.4</version>
</docletArtifact>
<additionalparam>
-inferrel -inferdep -quiet -hide java.*
-collpackages java.util.*
-qualify -postfixpackage
-nodefontsize 9
-nodefontpackagesize 7
</additionalparam>
</configuration>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
<reportSet>
<id>test-html</id>
<configuration>
<name>Test Javadocs</name>
<description>Javadocs for test source
code.</description>
<sourcepath>
${basedir}/src/test/java</sourcepath>
<!-- should use ${project.build.directory} or
${project.reporting.outputDirectory} ?!?
-->
<destDir>testapidocs</destDir>
<show>private</show>
</configuration>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
<reportSet>
<id>uml</id>
<configuration>
<name>UML Graph</name>
<description>UML diagram generated by UML
Graph
(requires
ZGRViewer).</description>
<outputName>uml/graph.dot</outputName>
<doclet>gr.spinellis.umlgraph.doclet.UmlGraph</doclet>
<docletArtifact>
<groupId>gr.spinellis</groupId>
<artifactId>UmlGraph</artifactId>
<version>4.4</version>
</docletArtifact>
<additionalparam>-views</additionalparam>
<!-- should use ${project.build.directory} or
${project.reporting.outputDirectory} ?!?
-->
<destDir>uml</destDir>
<show>private</show>
</configuration>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]