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

Tomislav Bodor commented on MNG-1542:
-------------------------------------

I have implemented an internal workaround for our project that doesn't pass the 
TypeArtifactFilter to the resolver/collector, but instead retrieves unfiltered 
dependencies and then post-filters them based on type (and creates another 
fileset or path) with dependencies not matching the filter removed. This is not 
implemented in a generic enough way to be used in standard Maven code, but 
perhaps suggests am alternative way of solving the filtering problem.

Your fix looks like it will work and is simple enough (small and localised), 
but I do not know enough about Maven internals to tell what other consequences 
it may have.

> type attribute of artifact:dependencies doesn't work for indirect dependencies
> ------------------------------------------------------------------------------
>
>          Key: MNG-1542
>          URL: http://jira.codehaus.org/browse/MNG-1542
>      Project: Maven 2
>         Type: Sub-task

>   Components: Ant tasks
>     Versions: 2.0
>     Reporter: Tomislav Bodor
>      Fix For: 2.1
>  Attachments: build.xml, pom.xml
>
>
> It appears that the type filter doesn't work properly with indirect 
> dependencies. It doesn't look like an issue with the TypeArtifactFilter 
> itself, but somewhere deeper. However, it's related to this feature, so here 
> it is...
> The problem manifests with transitive dependencies that are of different 
> type, e.g. a war artefact depends on a jar library. Whatever the type in that 
> case (jar or war), the dependency list returned by artifact:dependencies is 
> empty.
> I've traced through it and here is some more information:
> DefaultArtifactCollector applies the filter using ResolutionNode.filterTrail. 
> This iterates over the (dependency) node trail and applies the specified 
> filter to each dependency in turn. If all dependencies are of the same type 
> and the type matches the one specified in the filter, no problems. However, 
> I've got a dependency that is a war archive and that in turn has some jar 
> dependencies. If type is set to jar, filter fails when testing the first 
> dependency in the trail - the war in this case and never gets to the jar. The 
> result is that whatever the value of the type attribute, the dependency list 
> always ends up empty for trails that contain dependencies of different types.

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