Moumita Das
Moumita Das

Reputation: 121

version property dynamic in pom.xml

I have a Maven pom.xml, I build project and executable jar deploy in Nexus with Jenkins. But I want changes of version name according to branch name.

For example: I have in pom.xml

<groupId>net.test</groupId>
<artifactId>test-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>iin-parent</name>
<packaging>pom</packaging>

I need set like this : (Branch- Master/Test1/Test2/..)

<groupId>net.test</groupId>
<artifactId>test-parent</artifactId>
<version>BranchName_0.0.1-SNAPSHOT</version>
<name>iin-parent</name>
<packaging>pom</packaging>

How can this be done?

I was using MVN build like -Drevision=BranchName-SNAPSHOT clean compile package deploy. But I want dynamically fetch the branch name.

enter code here

Upvotes: 5

Views: 17023

Answers (1)

khmarbaise
khmarbaise

Reputation: 97447

If you use clean compile package deploy you are duplicating several parts..only clean deploy is needed. Please read the documentation about Maven Life cycle.

Furthermore if you like to change the version dynamically you can do that by using the correct properties (Starting with Maven 3.5.0+) which are ${revision}, ${sha1} and ${changelist} so for example:

<groupId>net.test</groupId>
<artifactId>test-parent</artifactId>
<version>${revision}</version>

<properties>
  <revision>1.0-SNAPSHOT</revision>
</properties>

This can be done in Maven like this:

mvn -Drevision=2.0-SNAPSHOT clean package

or if you like to do this for a branch:

mvn -Drevision=2.0-BranchName-SNAPSHOT clean package

You have to be aware if you like to do mvn clean deploy please read carefully the docs and follow them.

Upvotes: 12

Related Questions