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

Jerome Lacoste updated MNG-1588:
--------------------------------

    Attachment: MNG-1588.diff

This fixes the issue, althought I believe it to not be the full correct fix.
Once this is checked in, the priority can be downgraded from blocker to normal 
(or we create a separate issue for the remaining cleanup).

> dependency management in AbstractUnpackingMojo is broken in the reactor
> -----------------------------------------------------------------------
>
>          Key: MNG-1588
>          URL: http://jira.codehaus.org/browse/MNG-1588
>      Project: Maven 2
>         Type: Bug
>   Components: maven-assembly-plugin
>     Versions: 2.0.1
>     Reporter: Jerome Lacoste
>     Priority: Blocker
>      Fix For: 2.0.1
>  Attachments: MNG-1588.diff
>
>
> This problem only affects reactor builds.
> MNG-1206 broke my build. The lines
>                 String key = artifact.getGroupId() + ":" + 
> artifact.getArtifactId() + ":" + artifact.getVersion();
>                 
>                 if ( !reactorArtifacts.containsKey( key ) && 
> !dependencies.containsKey( key ) )
>                 {
>                     dependencies.put( key, artifact );
>                 }
> Any dependency that is supposedly known by the reactor won't be included in 
> the project's dependencies. 
> So if you have:
> moduleA
> moduleB depends on moduleA
> moduleA will be missing in the dependencies found by getDependencies() in an 
> assembly plugin used by moduleB, as it is already in the reactorArtifacts. 
> Not good when you want to use moduleA in your assembly :)
> Also note that the key used doesn't take into account the type of the 
> artifact. That may be a problem on its own, perhaps with attached artifacts.
> Shouldn't getDependencies() just work in the context of the reactor instead 
> of this particular mojo having to identify the relevant dependencies?
> One thing is to fix that properly. In the mean time, I am leaning on removing 
> the check (!reactorArtifacts.containsKey( key )).
> I'd rather have too many dependencies than not enough. Q: would this affect 
> the UnpackMojo ?
> Related issue: I also find strange that we process all reactor dependencies. 
> I think this could lead to the situation where a dependency not referenced by 
> the pom but referenced by the assembly config file and referenced by a module 
> in the reactor which has not yet been built could be taken into account. We 
> should restrict the dependencies from the reactorProjects up to the current 
> project being built.
> Basically:
> moduleA depends on lib1
> moduleB depends on lib2
> When we are using the assembly in moduleA from the reactor, lib2 shouldn't be 
> in the list of dependencies. Today I think it is.
> All in all I think the getDependencies() is not correct. I will try removing 
> the reactorArtifacts check for now, but it clearly could be improved.
> We shouldn't even add dependencies of all reactorProjets. Those after the 
> current project should be discarded

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