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>
>
>
>   

Reply via email to