Is there a ${parent.version} scheme or something like that which can be used instead of the explicitly specifying the version for each dependency?
Stephane Frenot (JIRA) escribió: > A better bundle/artifact version numbering scheme > ------------------------------------------------- > > Key: FELIX-155 > URL: http://issues.apache.org/jira/browse/FELIX-155 > Project: Felix > Issue Type: Improvement > Reporter: Stephane Frenot > Priority: Trivial > > > There is an issue with version management. > For the moment many bundles are versionned on the same scheme as > felix framework. ie : 0.8.0-SNAPSHOT > > This is because most of them do not declare a version number in their pom.xml. > > But if you declare a specific version number in you pom.xml there is > an issue, because you cannot use anymore the default $pom.version in your > dependencies. So you need to explicitely declare 0.8.0-SNAPSHOT in all > your depencies, that will lead to a management problem later. > > This is what happens with an example. > > 1) The classical files > <project> > <parent>...felix...</parent> > ... > <version>0.8.0-SNAPSHOT</version> > </parent> > ... > <dependencies> > <dependency> > <groupId>...</groupId> > <version>${pom.version}</version> --> This defaults to the > > current pom.xml version > > if specified, and to the > > parent version number if > > not. > > 2) The classical solution I found in some bundles > <project> > <parent>...felix...</parent> > ... > <version>0.8.0-SNAPSHOT</version> > </parent> > <version>0.1.0-SNAPSHOT</version> --> Declare a specific bundle > > version > ... > <dependencies> > <dependency> > <groupId>...</groupId> > <version>0.8.0-SNAPSHOT</version> --> You cannot use anymore > > ${pom.version} (because > > it is now 0.1.0-SNAPSHOT) > > So you need to specify > > for all your dependencies > > the felix/framework > > version numbers. > > ****************** > In order to avoid this problem, version dependencies can be declared > in a DependenciesManagement tag in the main pom.xml. This tags > declares general version number dependencies. And declares the default > version number to be used for child artifacts. > > <DependenciesManagement> > <dependency> > <groupId>${pom.groupId}</groupId> > <artifactId>org.osgi.core</artifactId> > <version>0.8.0-SNAPSHOT</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>${pom.groupId}</groupId> > <artifactId>org.osgi.compendium</artifactId> > <version>0.8.0-SNAPSHOT</version> > <scope>provided</scope> > </dependency> > <DependenciesManagement> > > Now your pom.xml can avoid specifying a version number for it's dependencies. > <project> > <parent>...felix...</parent> > ... > <version>0.8.0-SNAPSHOT</version> > </parent> > <version>0.1.0-SNAPSHOT</version> --> Declare a specific bundle > version > ... > <dependencies> > <dependency> > <groupId>...</groupId> > <artifactId>org.osgi.core</artifactId> > <scope>provided</scope> > </dependency> > > >