Hi,

On Wed, May 30, 2012 at 2:56 PM, Rupert Westenthaler
<[email protected]> wrote:
> ...I only tried to
> point out that I believe you assumption that the parent POM will not
> change very often is not the case for a "dependency heavy" project
> like Apache Stanbol...

FWIW, the way we handle this in Sling is to have just a handful of
dependencies defined in the parent pom [1]: only things like the OSGi
framework, logging and testing libraries. This means the parent pom
does not need frequent changes, and all the rest is defined in the
bundles poms.

If modules correctly define version ranges for their OSGi
dependencies, you're fine with having one module depend on foo.api 1.2
and another depend on foo.api 1.4: at runtime, both bundles will only
start if foo.api 1.4 is available, and the framework will indicate
problems if that's not the case.

It's even better than forcing all bundles to have the same
dependencies, as the bundle which depends on foo.api 1.2 can still run
in an older system that has only that version.

The only downside IMO is that you'll end up downloading both 1.2 and
1.4 when you first build your project on an empty local Maven
repository.

-Bertrand

[1] http://svn.apache.org/repos/asf/sling/trunk/parent/pom.xml

Reply via email to