 ------
 Generate Javadoc without duplicate execution of phase generate-sources.
 ------
 Mirko Friedenhagen
 ------
 2014-03-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

Generate Javadoc without duplicate execution of phase generate-sources.

 * The standard goals <<<javadoc>>> and <<<test-javadoc>>> invoke separate lifecyles
 <<<generate-sources>>> and <<<generate-test-sources>>>.

 * In a CI environment you now might execute something like <<<mvn clean deploy site site-deploy>>>.

 * During <<<site>>> build the standard reports will trigger <<<generate-sources>>> or
 <<<generate-test-sources>>> again, depending on your build this may take some time, because
 stuff like <<<enforcer>>> or generating stubs from a WDSL will be invoked again, which may lead
 to longer build times.

 * See {{{https://issues.apache.org/jira/browse/MJAVADOC-369}MJAVADOC-369}} as well.

 * As of version 2.10 two new reports are defined, <<<javadoc-no-fork>>> and <<<test-javadoc-no-fork>>>
 which will not trigger above phases a second time.

 * Configure this in your <<<reporting>>> section as follows:

+-----+
<project>
  ...
  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${project.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>javadoc-no-fork</report>
              <report>test-javadoc-no-fork</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>
+-----+

 <<Note>>: These reports may not be used for aggregate reports. For those, see the example of
     {{{./aggregate-nofork.html}generating aggregate Javadocs without execution of phase compile}}.
