Tuomas Kiviaho created FELIX-3565:
-------------------------------------

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


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 
dep-2.2 embedded although it should be excluded. 

myproject (*;scope=compile|bundle;type=!bundle)
+dep-1;scope=compile;type=jar // included ok
  +dep-1.1;scope=compile;type=jar // included ok
  -dep-1.2;scope=compile;type=bundle // excluded ok and there are no transitive 
dependency candidates available
  -dep-1.3;scope=provided;type=bundle // excluded ok because scope is provided
    -dep-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
-dep-2;scope=compile;type=bundle // excluded ok because type is bundle
  -dep-2.1;scope=provided;type=jar // excluded ok because scope is provided
  +dep-2.2;scope=compile;type=jar // NOT excluded ok because scope and type no 
not match exclusion pattern

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: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to