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 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>3.1.1</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 generating aggregate Javadocs without execution of phase compile.