Hi Michael,

If the original jar has dependencies with 'compile' scope then they're added to
the build classpath and packaged in the final bundle. This may or may not be
what you want - some jars have dependencies that form a collective module
and would never appear separately, so you'd like those dependencies added.

Other jars have dependencies that could be shared among a lot of bundles
(ie. jdbc) - in that case you'd make a separate bundle of the dependency and
would not want it added to the parent jar (to avoid classpath issues & bloat).

If you decide to not include a dependency inside a bundle, you should probably
declare the import as optional using ";resolution:=optional".

Cheers, Stuart

On 09/03/07, Hampel, Michael <[EMAIL PROTECTED]> wrote:

Hello Alin,

I don't understand why you would have to exclude the dependencies - as far as I
Understood the maven-bundle plugin is not doing anything with the maven 
dependencies.
If the dependencies are excluded (like in the hibernate osgi pom) and I add the 
hibernate
Osgi jar as a dependency to my project, I would loose the transitive capability 
of maven as the
Transitive dependencies of hibernate are not added anymore, e.g.: when doing 
eclipse:eclipse.
On the other side it makes sense to exclude the dependencies, because I also 
will have to wrap the
Hibernate dependencies to become osgi bundles - so the jta dependencies will 
change to a jta-osgi dependency....
Does this mean I have to forget about maven's transitive capabilites?

Maybe I am thinking completely wrong here - but probably you could shed some 
light,

Thanx,

Michael






-----Ursprüngliche Nachricht-----
Von: Alin Dreghiciu [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 08. März 2007 14:18
An: felix-dev@incubator.apache.org
Betreff: maven-bundle-plugin, wrapping and excludeTransitive

About jar wrapping:

Most of the time (at least in the cases I had) you would like to wrap only
the content of the jar you are targeting and not also the transitive
dependencies that the targeted jar has. You can do this in at least two
ways:
1. add <exclusions> to the dependency. This is verbose for the case that the
targeted jar has extensive dependencies and irrelevant to the process of
wrapping
2. set the Export-package directive  to export only those packages that you
want. here you have to know the internals of the package and if the jar has
some resources as licences, xmls' outside the main package you have to add
them one by one.

So, here I am proposing a new configuration option: excludeTransitive that
is suppose to exclude the transitive artifacts if set to true.

An example implementation can be found at the following location:
http://maven.apache.org/plugins/maven-dependency-plugin/xref/org/apache/maven/plugin/dependency/utils/filters/TransitivityFilter.html

Alin Dreghiciu

PS. Maven does not support a property of the articat as isTransitive()

<http://maven.apache.org/plugins/maven-dependency-plugin/xref/org/apache/maven/plugin/dependency/utils/filters/TransitivityFilter.html>

Reply via email to