Search code examples
maven

maven override project.version from command line


I wonder if it is possible to override project.version/version variable in maven via command line?

The following doesn't work:

mvn deploy -Dversion=1.0-test-SNAPSHOT  
mvn deploy -Dproject.version=1.0-test-SNAPSHOT  

My pom.xml is:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>just.another.company.name</groupId>
    <artifactId>my-pom</artifactId>
    <version>1.3-SNAPSHOT</version>
    <name>My Module</name>
    <packaging>jar</packaging>
    <description>POM Project for My Module</description>
</project>

Solution

  • Simply you can't override project.version. Try:

    mvn versions:set -DnewVersion=<version>
    

    Usually, I start by updating the parentPom

    mvn versions:set -DnewVersion=1.0.3-SNAPSHOT
    

    This would be enough if the parent pom contained all child projects if not you will need to go to a super project that contain all child project and execute

    mvn versions:update-child-modules
    

    Also the two previous steps will be enough if the parentPom exists in relative path if not you will need to install parentPom project with the new version

    mvn install
    

    Usually this will be enough if you don't have module depend on another module. if you do, declare its version as a project.version like that and it will be reflected automatically

    <version>${project.version}</version>
    

    Check the maven Versions Plugin docs.