| ------ |
| Generating Test Javadocs |
| ------ |
| Vincent Siveton |
| ------ |
| 2009-08-19 |
| ------ |
| |
| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you under the Apache License, Version 2.0 (the |
| ~~ "License"); you may not use this file except in compliance |
| ~~ with the License. You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, |
| ~~ software distributed under the License is distributed on an |
| ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~~ KIND, either express or implied. See the License for the |
| ~~ specific language governing permissions and limitations |
| ~~ under the License. |
| |
| ~~ NOTE: For help with the syntax of this file, see: |
| ~~ http://maven.apache.org/doxia/references/apt-format.html |
| |
| Generating Test Javadocs |
| |
| Here is a typical project used by the Maven Javadoc plugin: |
| |
| +-----+ |
| |
| yourproject |
| |-- src |
| |-- main |
| | |-- java |
| | | |-- org |
| | | |-- apache |
| | | |-- myapp |
| | | `-- App.java |
| | |-- javadoc |
| | `-- overview.html |
| | |-- org |
| | |-- apache |
| | |-- myapp |
| | `-- package.html |
| | |-- doc-files |
| | `-- app.png |
| |-- test |
| |-- java |
| | |-- org |
| | |-- apache |
| | |-- myapp |
| | `-- AppTest.java |
| |-- javadoc |
| `-- overview.html |
| |-- org |
| |-- apache |
| |-- myapp |
| `-- package.html |
| |-- doc-files |
| `-- app.png |
| +-----+ |
| |
| * Using the <javadoc:test-javadoc> goal |
| |
| You need to configure the Maven Javadoc plugin in your pom.xml, for instance: |
| |
| +-----+ |
| |
| <project> |
| ... |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${project.version}</version> |
| <configuration> |
| <doctitle>My API for \${project.name} \${project.version}</doctitle> <!-- Used by javadoc:javadoc goal --> |
| <windowtitle>My API for \${project.name} \${project.version}</windowtitle> <!-- Used by javadoc:javadoc goal --> |
| |
| <testDoctitle>My Test API for \${project.name} \${project.version}</testDoctitle> <!-- Used by javadoc:test-javadoc goal --> |
| <testWindowtitle>My Test API for \${project.name} \${project.version}</testWindowtitle> <!-- Used by javadoc:test-javadoc goal --> |
| ... |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| ... |
| </project> |
| +-----+ |
| |
| You could call <mvn javadoc:test-javadoc> or <mvn site>. See |
| {{{../test-javadoc-mojo.html}javadoc:test-javadoc parameters}} for more informations. |
| |
| <<Notes>>: |
| |
| [[1]] If you don't set \<testDoctitle/\> or \<testWindowtitle/\> parameters, the Test Javadoc report uses the same |
| configuration (i.e. \<doctitle/\> or \<windowtitle/\> parameters) that Javadoc report uses (backward compatible reasons). |
| |
| [[2]] To run the reports selectively, you need to include only the reports that you prefer. |
| Read the {{{./selective-javadocs-report.html}Selective Javadocs Reports}} part for more information. |
| |
| [[3]] To allow the copy of resources, you need to add the \<docfilessubdirs/\> parameter. Read the |
| {{{./javadoc-resources.html}Using Javadoc Resources}} page for more information. |
| |
| [] |
| |
| * Using the \<reportSets/\> configuration parameter |
| |
| You could also want a different kind of configuration for the Javadoc report and the test Javadoc report. |
| For this, you need to configure the Maven Javadoc plugin in your pom.xml to handle the \<reportSets/\> configuration |
| parameter, for instance: |
| |
| +-----+ |
| |
| <project> |
| ... |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${project.version}</version> |
| <reportSets> |
| <reportSet> |
| <id>html</id> |
| <configuration> |
| <doctitle>My API for \${project.name} \${project.version}</doctitle> |
| <windowtitle>My API for \${project.name} \${project.version}</windowtitle> |
| ... |
| </configuration> |
| <reports> |
| <report>javadoc</report> |
| </reports> |
| </reportSet> |
| <reportSet> |
| <id>test-html</id> |
| <configuration> |
| <testDoctitle>My Test API for \${project.name} \${project.version}</testDoctitle> |
| <testWindowtitle>My Test API for \${project.name} \${project.version}</testWindowtitle> |
| ... |
| </configuration> |
| <reports> |
| <report>test-javadoc</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| </plugins> |
| </reporting> |
| ... |
| </project> |
| +-----+ |
| |
| You need to call <mvn site>. |