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
