@requiresDependencyResolution in process-classes post compile
-------------------------------------------------------------

         Key: MNG-1390
         URL: http://jira.codehaus.org/browse/MNG-1390
     Project: Maven 2
        Type: Bug
  Components: maven-project  
    Versions: 2.0    
 Reporter: Jesse McConnell


I was looking back into some plugins I had written a while back and ran across 
an oddity.

it appears that when using a plugin in the process-classes phase, after the 
compiler plugin has done its thing, the @requiresDependencyResolution javadoc 
flag will toggle the presense of dependencies that are scoped to provided in 
the dependencies section when calling project.getCompileClasspathElements();  
(a difference of 80 vs 24 when not using the flag and then using it)

---

this are two snippits of code from the plugin

/**
 * A plugin for generating * java file containing all the classes in a src tree.
 *
 * @goal generate
 * @requiresDependencyResolution
 * @description Functions Generator plugin
 * @author jesse <[EMAIL PROTECTED]>
 */
 
 
 
         List classpathFiles = project.getCompileClasspathElements();
 
         URL[] urls = new URL[classpathFiles.size() + 1];
 
         getLog().debug("" + classpathFiles.size());
 
         for (int i = 0; i < classpathFiles.size(); ++i) {
            getLog().debug((String)classpathFiles.get(i));
            urls[i] = new File((String)classpathFiles.get(i)).toURL();
         }
 
         urls[classpathFiles.size()] = new File( buildDirectory + "/classes" 
).toURL();
 
         URLClassLoader ucl = new URLClassLoader(urls, 
Thread.currentThread().getContextClassLoader());

being used with the following plugin declaration:

<plugin>
            <groupId>gallup.maven</groupId>
            <artifactId>services-provider-maven-plugin</artifactId>
            <version>1.0.1</version>
            <configuration>
               
<fullyQualifiedFileName>com/g/util/ServiceProvider.java</fullyQualifiedFileName>
            </configuration>
            <executions>
               <execution>
                  <phase>process-classes</phase>
                  <goals>
                     <goal>generate</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>

----

analyzing the debug output when I run the plugin without the 
@requiresDependencyResolution I get 80 dependencies and it builds out the 
classloader correctly..

but if I add the @requiresDependencyResolution statement I go down to 24 
dependencies being put into the classloader...and the discrepency corresponds 
to the presense of the <scope>provided</scope> statement.

-- 
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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to