Incorrect classpath is used when site plugin/phase launches javadoc command
---------------------------------------------------------------------------

                 Key: MSITE-432
                 URL: http://jira.codehaus.org/browse/MSITE-432
             Project: Maven 2.x Site Plugin
          Issue Type: Bug
    Affects Versions: 2.0.1, 2.0-beta-7
         Environment: Maven 2.2.1
            Reporter: Chris Tait
            Priority: Minor
         Attachments: maven-projects.zip

When invoking the site plugin (with javadoc reporting enabled) for a project 
that depends on both the main artifact and the tests artifact of another 
project, the classpath passed to the javadoc command is incorrect.

For example:
Project A produces the following artifacts:
- ProjectA-version.jar (main artifact)
- ProjectA-version-tests.jar (test classes)

And project B has dependencies similar to this:
{code}<dependency>
  <groupId>...</groupId>
  <artifactId>Project1</artifactId>
  <version>...</version>
</dependency>
<dependency>
  <groupId>...</groupId>
  <artifactId>Project1</artifactId>
  <version>...</version>
  <classifier>tests</classifier>
  <scope>test</scope>
</dependency>{code}

Then only one of the jars is included in the classpath passed to the javadoc 
command.  (Normally it seems to be the main artifact, although on one of my 
projects it was the tests artifact instead.)  This causes lots of warnings, or 
for some projects causes the build to fail.

Note that if I explicitly run the javadoc goals (i.e. "mvn javadoc:javadoc" or 
"mvn javadoc:test-javadoc") then the classpath is populated correctly and no 
errors are shown.  It's only when the site plugin/phase launches it that the 
classpath is wrong.  I've also found that the order of the dependencies within 
the POM file seems to make a difference in some cases.

I've attached a zip file containing two projects to reproduce this.  To run it:
# run {{mvn install}} on project1
# run {{mvn site}} on project2 (to see the warnings) or {{mvn 
javadoc:test-javadoc}}

The warning looks like this:
{code}[WARNING] Javadoc Warnings
[WARNING] 
D:\code\EclipseWorkspaces_chris\PaymentCard\project3\src\main\java\repro3\MyClass3.java:3:
 cannot find symbol
[WARNING] symbol  : class MyClass1
[WARNING] location: package repro1
[WARNING] import repro1.MyClass1;
[WARNING] ^{code}


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to