You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2006/03/25 00:42:18 UTC

[jira] Updated: (MNG-1390) @requiresDependencyResolution in process-classes post compile

     [ http://jira.codehaus.org/browse/MNG-1390?page=all ]

Brett Porter updated MNG-1390:
------------------------------

    Reporter: Jesse McConnell  (was: Jesse McConnell)

> @requiresDependencyResolution in process-classes post compile
> -------------------------------------------------------------
>
>          Key: MNG-1390
>          URL: http://jira.codehaus.org/browse/MNG-1390
>      Project: Maven 2
>         Type: Bug

>   Components: Inheritence and Interpolation
>     Versions: 2.0
>     Reporter: Jesse McConnell
>      Fix For: 2.0.4

>
> Original Estimate: 3 hours
>         Remaining: 3 hours
>
> 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 <je...@g.com>
>  */
>  
>  
>  
>          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