Maven 2.x Javadoc Plugin

Regression: 2.4-SNAPSHOT does not generate docs for generates sources if run outside a build

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 2.4
  • Fix Version/s: 2.5
  • Component/s: None
  • Labels:
    None
  • Environment:
    Maven 2.0.8, JDK 1.5.0_12, WinXP
  • Number of attachments :
    1

Description

The fix applied for MJAVADOC-145 causes the plugin to loose source roots that get created during the generate-sources build phase. I.e. if one runs

mvn org.apache.maven.plugins:maven-javadoc-plugin:2.3:javadoc

the plugin properly documents generated source code but running

mvn org.apache.maven.plugins:maven-javadoc-plugin:2.4-SNAPSHOT:javadoc

only documents the default source root "src/main/java".

Usually, I would expect to have the JavadocReport mojo @execute phase="generate-sources" and the TestJavadocReport mojo to have @execute phase="generate-test-sources" (although it's kind of ugly to have the compile phase being run in the later case).

In lack of these annotations, the plugin produces different output when run directly from the command line or indirectly as part of build.

Issue Links

Activity

Hide
Benjamin Bentmann added a comment -

Here's a test project to play with. When invoking "mvn javadoc:javadoc" only the class "Main" makes it into the api docs. If you invoke "mvn compile" (where I added an execution of the javadoc plugin), you get both "Main" and "GeneratedClass".

If the @execute annotation really cannot be re-added due to MJAVADOC-145, there must at least be some doc/faq about this odd behavior. However, I currently do not believe that @execute was the real cause of this other issue. I would rather ask why the mojo has @phase generate-sources as annotation. The Javadoc Plugin does not really participate in the default build cycle, its usually part of the site lifecycle.

Show
Benjamin Bentmann added a comment - Here's a test project to play with. When invoking "mvn javadoc:javadoc" only the class "Main" makes it into the api docs. If you invoke "mvn compile" (where I added an execution of the javadoc plugin), you get both "Main" and "GeneratedClass". If the @execute annotation really cannot be re-added due to MJAVADOC-145, there must at least be some doc/faq about this odd behavior. However, I currently do not believe that @execute was the real cause of this other issue. I would rather ask why the mojo has @phase generate-sources as annotation. The Javadoc Plugin does not really participate in the default build cycle, its usually part of the site lifecycle.
Hide
Benjamin Bentmann added a comment -

The TestJavadocReport mojo has @phase generate-test-sources which doesn't make much sense either. I bet the original committer meant @execute phase=generate-test-sources instead.

Show
Benjamin Bentmann added a comment - The TestJavadocReport mojo has @phase generate-test-sources which doesn't make much sense either. I bet the original committer meant @execute phase=generate-test-sources instead.
Hide
Vincent Siveton added a comment -

fixed in r661899, snapshot deployed

Show
Vincent Siveton added a comment - fixed in r661899, snapshot deployed

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: