Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

maven override project.version from command line

Tags:

maven

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   

Thanks in advance for your help!

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> 
like image 698
mr.nothing Avatar asked Aug 07 '13 10:08

mr.nothing


People also ask

How do I change my Maven version?

Setting the Maven versionAdd an environment variable to your development system called ATLAS_MVN. Set the value of ATLAS_MVN to your Maven executable. Keep in mind this should be the Maven executable, not the Maven home. Verify the configuration by running the atlas-version command.

How do I change the version of POM XML?

mvn scm:checkin -Dincludes=pom. xml -Dmessage="Setting version, preping for release." Then you can perform your release (I recommend the maven-release-plugin), after which you can set your new version and commit it as above. The versions plugin is your friend.


2 Answers

In Maven 3.5+, if you put the following in your pom.xml

<version>${revision}</version> ... <properties>     <revision>1.0.0-SNAPSHOT</revision> </properties> 

it will use 1.0.0-SNAPSHOT by default, but you can override it on the command line:

mvn -Drevision=2.0.0-SNAPSHOT clean package 

Apparently this only works if the placeholder property is called revision (you can also use changelist and sha1 placeholders in your version).

See https://maven.apache.org/maven-ci-friendly.html

like image 30
John Velonis Avatar answered Sep 19 '22 14:09

John Velonis


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.

like image 163
mebada Avatar answered Sep 19 '22 14:09

mebada