You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Gr?gory Joseph (JIRA)" <ji...@codehaus.org> on 2006/01/13 22:31:01 UTC

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

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

Grégory Joseph commented on MNG-1390:
-------------------------------------

I'm running into a similar issue with MOJO-239 : 
My mojo is bound to the generate-sources phase, and if it adds a source root with project.addCompileSourceRoot, then the compiler plugin looses his mind and can't find some dependency(ies). On the other hand, if I don't add a source root (keepJava=false in the mojo, which is the default), then everything is fine.

> @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
>     Assignee: John Casey
>      Fix For: 2.0.3

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org