multi-component versioning/building best practices

LilChefDeath

New Member
I have a Java project, built with Maven, that aggregates several components, each one in its own Maven project.each component may evolve separately.it's something like this:
  • my-main-project depends on:
    • my-component-1
    • my-component-2
    • etc
today, all pom.xml are using "snapshot" versions, so, they are all using the "last" update available in my repository.but once I send a release version to my customer, I'm supposed to freeze the versions and make a TAG (or equivalent) in my source-control, so I can restore a previous state in case of maintenance.now the question is: should I change all pom.xml files before each release, give version numbers to the components, and tie everything with this dependency versions?if I have many components (my project currenty has 30+ small components) I would have to re-number/version each one before each release? when a single component evolves (due to bug fix or enhancement), I must increase its version so the changes do not affect pre-existing releases, right?how people using maven handle this multi-many-components versioning case?I could just rely on my version-control TAG's to restore a point-in-time back, and just TAG every component on each release, but I don't like this approach, since the dependency versioning (with maven) gives me much more control and visibility about what is packaged, and relations of (broken-)compatibility and such... any comments?
 
Back
Top