BTW, one way to exclude transitive dependencies at the moment is:

1A) specify wrapped jars as dependencies with 'runtime' scope and
     use the maven-dependency-plugin to copy them into a directory
     called 'lib' ... the dependency plugin has an excludeTransitive
     option to not copy the extra jars, but they'll still get downloaded.

or...

1B) use the maven-dependency-plugin to copy named artifacts to
     a directory called lib (no excludeTransitive is needed for this)
     This has the benefit of not downloading the extra jars, but the
     maven-eclipse-plugin won't add them to the generated classpath.

2) use the following instructions in the maven-bundle-plugin:

   <Include-Resource>lib=lib</Include-Resource>
   
<Bundle-ClassPath>lib/${wrapped.artifactId}-${project.version}.jar</Bundle-ClassPath>

   where wrapped.artifactId is a property set inside the pom

This should wrap the original jarfile inside the OSGi bundle (ie. no unpacking).

Cheers, Stuart

On 09/03/07, Stuart McCulloch <[EMAIL PROTECTED]> wrote:
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