How to arrange dependency management for maven reactor if child modules are versioned independently? -


we have reactor pom child modules versioned independently, ie. child module declares it's own version independent of version of main pom. there dependency between 2 child modules. how should dependency configured use version declared actual module of reactor pom?

i expect can set dependency management in root pom , use implicit properties determine version of child modules, best such option can find :

${session.projectdependencygraph.sortedprojects[0].version}  

or

${reactorprojects[0].version} 

so dependency management in root pom this:

<dependencymanagement>   <dependencies>     <dependency>       <groupid>mygroup</groupid>       <artifactid>mysubmodule</artifactid>       <version>${reactorprojects[0].version}</version>     </dependency>   </dependencies> </dependencymanagement> 

looks unreliable because reactor order may change when new modules or dependencies added.

maybe usage scenario discouraged design , know why.

edit: suggested in comments, declaring global properties child versions in parent pom may option newer versions of maven. see analysis respect wider consequences workflow, releasing, directory , repository settings, plugins usage (e.g. version plugin) etc. example think direct consequence of approach have release parent module whenever of child modules released. although doable, impact original idea of having independent versioning.

i suggest using dependencymanagement in parent pom. can define de versions of dependencies there. can omit version of dependencies in different modules

so in parent:

<dependencymanagement>   <dependencies>     <dependency>       <groupid>mygroup</groupid>       <artifactid>mymodule</artifactid>       <version>1.2.3</version>     </dependency>   </dependencies> </dependencymanagement> 

in module use

  <dependencies>     <dependency>       <groupid>mygroup</groupid>       <artifactid>mymodule</artifactid>     </dependency>   </dependencies> 

the version defined in dependencymanagement used.

i recommend defining version of dependencies in parent pom.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -