Maven 1.x Javadoc Plugin

javadoc:jar fails if project doesn't have source files

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.6, 1.6.1
  • Fix Version/s: 1.7
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    0

Description

If your project doesn't have source files, javadoc:jar (and goals that depends on it, like javadoc:deploy) fails, even though javadoc itself suceeds.
You can reproduce this bug on the maven-plugins root:

$ maven javadoc
__ __

\/ __ Apache_ ___
  \/ / ` \ V / -) ' \ ~ intelligent projects ~
_   _,_ _/___ _ _ v. 1.0-cpqd-1.0.0

BUILD SUCCESSFUL
Total time: 26 seconds
Finished at: Mon Aug 23 14:53:19 BRT 2004

$ maven javadoc:jar
__ __

\/ __ Apache_ ___
  \/ / ` \ V / -) ' \ ~ intelligent projects ~
_   _,_ _/___ _ _ v. 1.0-cpqd-1.0.0

build:start:

xdoc:init:
[mkdir] Created dir: D:\cvs\maven-plugins\target\generated-xdocs
[mkdir] Created dir: D:\cvs\maven-plugins\target\docs

maven-javadoc-plugin:report:
[mkdir] Created dir: D:\cvs\maven-plugins\target\javadoc
[mkdir] Created dir: D:\cvs\maven-plugins\target\javadoc\src

BUILD FAILED
File...... C:\Documents and
Settings\t_fl01\.maven\cache\maven-javadoc-plugin-1.7-snapshot-cpqd\plugin.jelly
Element... ant:jar
Line...... 464
Column.... 24
D:\cvs\maven-plugins\target\docs\apidocs not found.
Total time: 38 seconds
Finished at: Mon Aug 23 14:51:35 BRT 2004

It shouldn't be hard to fix this one - I will try a patch once I'm back
from my 'break'

– Felipe

Activity

Hide
Felipe Leme added a comment -

Hi Arnaud,

Thanks for opening this issue (I couldn't, as Jira was bug).

Anyway, the fix is pretty simple: it's just a matter of callign mkdir before the <j:if> statement:

Before it was:
<goal name="maven-javadoc-plugin:report"
description="Generate API documentation" prereqs="xdoc:init">

<javadoc:init/>
<j:if test="${internal.javadoc.needed}">
<ant:mkdir dir="${maven.javadoc.destdir}"/>

Now it should be:

<ant:mkdir dir="${maven.javadoc.destdir}"/>
<j:if test="${internal.javadoc.needed}">

I'll provide a patch...

Felipe

Show
Felipe Leme added a comment - Hi Arnaud, Thanks for opening this issue (I couldn't, as Jira was bug). Anyway, the fix is pretty simple: it's just a matter of callign mkdir before the <j:if> statement: Before it was: <goal name="maven-javadoc-plugin:report" description="Generate API documentation" prereqs="xdoc:init"> <javadoc:init/> <j:if test="${internal.javadoc.needed}"> <ant:mkdir dir="${maven.javadoc.destdir}"/> Now it should be: <ant:mkdir dir="${maven.javadoc.destdir}"/> <j:if test="${internal.javadoc.needed}"> I'll provide a patch... Felipe
Hide
Arnaud Heritier added a comment -

If we do this, won't we create an empty jar ?

Show
Arnaud Heritier added a comment - If we do this, won't we create an empty jar ?
Hide
Felipe Leme added a comment -

Yes, it will.

But I think it's better then getting an exception. Anyway, the current behavior is not consistent, as javadoc:generate works. So we either change javadoc:jar to work too or change javadoc:generate to fail as well.

Another option would be enclosing the javadoc:install (and others) tags into a <util:available> tag. That way the jar won't be created and the goal won't fail.

Anyway, it's just a matter of style (I, for instance, prefer a empty jar than nothing at all). So, whatever we decide, I can create a patch.

Felipe

Show
Felipe Leme added a comment - Yes, it will. But I think it's better then getting an exception. Anyway, the current behavior is not consistent, as javadoc:generate works. So we either change javadoc:jar to work too or change javadoc:generate to fail as well. Another option would be enclosing the javadoc:install (and others) tags into a <util:available> tag. That way the jar won't be created and the goal won't fail. Anyway, it's just a matter of style (I, for instance, prefer a empty jar than nothing at all). So, whatever we decide, I can create a patch. Felipe
Hide
Arnaud Heritier added a comment -

Temporarly I commited the fix with the mkdir before the test.
I'll do somethink better with util:available to definitively close this issue.

Show
Arnaud Heritier added a comment - Temporarly I commited the fix with the mkdir before the test. I'll do somethink better with util:available to definitively close this issue.
Hide
Felipe Leme added a comment -

Test case 07 is failing:
maven-javadoc-plugin:report:
[mkdir] Created dir: /home/felipeal/cvs/maven/maven-plugins/javadoc/src/plugin-test/test07/target/javadoc
[mkdir] Created dir: /home/felipeal/cvs/maven/maven-plugins/javadoc/src/plugin-test/test07/target/javadoc/src

BUILD FAILED
File...... /home/felipeal/.maven/cache/maven-javadoc-plugin-1.7-SNAPSHOT/plugin.jelly
Element... ant:copy
Line...... 115
Column.... 57
Specify at least one source - a file or a fileset.
Total time: 9 seconds
Finished at: Wed Sep 01 23:52:49 BRT 2004

Show
Felipe Leme added a comment - Test case 07 is failing: maven-javadoc-plugin:report: [mkdir] Created dir: /home/felipeal/cvs/maven/maven-plugins/javadoc/src/plugin-test/test07/target/javadoc [mkdir] Created dir: /home/felipeal/cvs/maven/maven-plugins/javadoc/src/plugin-test/test07/target/javadoc/src BUILD FAILED File...... /home/felipeal/.maven/cache/maven-javadoc-plugin-1.7-SNAPSHOT/plugin.jelly Element... ant:copy Line...... 115 Column.... 57 Specify at least one source - a file or a fileset. Total time: 9 seconds Finished at: Wed Sep 01 23:52:49 BRT 2004
Hide
Arnaud Heritier added a comment -

it is the same problem as MPJAVADOC-43

Show
Arnaud Heritier added a comment - it is the same problem as MPJAVADOC-43

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: