Search code examples
javamaven

Updating version numbers of modules in a multi-module Maven project


I have a multi-module maven project. We intend to version all these modules together. But as of now I am ending up hard-coding version in each of the module pom.xml as below

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>

and the main parent module has the below configuration

<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-application</artifactId>
<version>2.50.0.g</version>
<packaging>pom</packaging>

Solution

  • Use versions:set from the versions-maven plugin:

    mvn versions:set -DnewVersion=2.50.1-SNAPSHOT
    

    It will adjust all pom versions, parent versions and dependency versions in a multi-module project.

    If you made a mistake, do

    mvn versions:revert
    

    afterwards, or

    mvn versions:commit
    

    if you're happy with the results.


    Note: this solution assumes that all modules use the aggregate pom as parent pom also, a scenario that was considered standard at the time of this answer. If that is not the case, go for Garret Wilson's answer.