[ 
https://issues.apache.org/jira/browse/FELIX-3565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stuart McCulloch updated FELIX-3565:
------------------------------------

    Labels: patch  (was: )
    
> Embed-Transitive leaks transitive dependencies of excluded artifacts
> --------------------------------------------------------------------
>
>                 Key: FELIX-3565
>                 URL: https://issues.apache.org/jira/browse/FELIX-3565
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven Bundle Plugin
>    Affects Versions: maven-bundle-plugin-2.3.7
>            Reporter: Tuomas Kiviaho
>              Labels: patch
>             Fix For: maven-bundle-plugin-2.4.0
>
>         Attachments: maven-bundle-plugin.patch
>
>
> I was trying to re-config some of my projects so that I get compile(+runtime) 
> scoped dependencies and their transitive dependencies embedded by using 
> Embed-Transitive=true with the exception of dependencies that I had with type 
> bundle. Exclusion of bundles turned out to be trickier than I though because 
> I can't use provided scope without sacrificing the respective transitive 
> dependencies in the process. Everything went ok until I noticed that 
> inclusion process with the transitive dependencies of already excluded 
> compile scoped dependencies that had type set to bundle as shown below where 
> I'm getting bb-2.2 embedded although it should be excluded. 
> myproject (*;scope=compile|runtime;type=!bundle)
> +a-1;scope=compile;type=jar // included ok
>   +aa-1.1;scope=compile;type=jar // included ok
>   -ab-1.2;scope=compile;type=bundle // excluded ok and there are no 
> transitive dependency candidates available
>   -ac-1.3;scope=provided;type=bundle // excluded ok because scope is provided
>     -aca-1.3.1;scope=compile;type=jar  // excluded ok although scope is 
> compile because provided scope doesn't reveal any of the existing 
> dependencies as transitive dependencies
> -b-2;scope=compile;type=bundle // excluded ok because type is bundle
>   -ba-2.1;scope=provided;type=jar // excluded ok because scope is provided
>   +bb-2.2;scope=compile;type=jar // NOT excluded ok because parent already 
> excluded
> In short: Everything not matching exclusion pattern (and matching inclusion 
> pattern) will be excluded no matter if their origin has been already excluded.
> I checked the codebase and noticed that the reason for having 'NOTE: test 
> scoped dependencies are not included in the classpath seen by BND.' on the 
> web page accumulated from the problem. It seems that dependency tree shared 
> component seems to have given problems before and that Aether isn't backwards 
> compatible but I suggest giving a try to maven-dependency-tree 2.0 that is 
> Aether based for Maven 3 but remains still backwards compatible with Maven 2.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to