Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
maven-bundle-plugin-2.3.7
Description
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.
Attachments
Attachments
Issue Links
- is broken by
-
FELIX-6073 Upgrade to Maven 3
- Resolved
- is related to
-
FELIX-3877 Transitive optional dependencies add non-optional Import-Packages
- Open
- is superceded by
-
FELIX-6457 Regression after a change in maven-bundle-plugin:4.2.0 related to leaking of transitive dependencies of excluded artifacts
- Open
- relates to
-
FELIX-5645 Embed-Transitive feature is no longer working
- Closed