Dhana
Dhana

Reputation: 913

Maven project version interpolation from a property file

We are using a Maven for a while in our project and want to automate the release process little bit. we came up with the following idea so that the version will be maintained by developers or in SCM instead of in DevOps tool like jenkins/bamboo.

Anyone following below process instead of setting the interpolation value in arguments as "mvn install -Dapp.version=1.0.0-SNAPSHOPT"

The process we like to follow is to supply the Maven project version through an external property file.

let's assume the following partial POM.xml excerpt as example.

<project>
    <groupId>com.home.diary</groupId>
    <artifactId>journal</artifactId>
    <version>${app.version}</version>
    <packaging>war</packaging>
</project>

let's assume i have an version.properties file in my SCM with following content

app.version=2.0.0-RELEASE

while running the mvn goal

mvn install

i want the artifact generated as

journal-2.0.0-RELEASE

I tried using plugin properties-maven-plugin from org.codehaus.mojo as discussed here How to read an external properties file in Maven but it's not working.

Anyone did this? could you please share your implementation/ideas?

Upvotes: 0

Views: 657

Answers (1)

J Fabian Meier
J Fabian Meier

Reputation: 35805

This is not possible.

First of all: Why not just manage the version in the <version> tag itself? It is the easiest thing and fulfils your requirement (the developer manages the version in the SCM).

If you don't want this, you need to supply the version either in the POM itself or through the command line. Reading external properties with something like the properties maven plugin will always happen too late, i.e. after the version tag is already read.

Upvotes: 1

Related Questions