mavenjenkinsjenkins-pluginsversion-numbering

using versionNumber plugin in Jenkins


Context:

We build our maven apps in which version number is injected by a build.properties file. Problem with this approach is that for every release, version number needs to be bumped manually.


Browsing online to fix this problem, i bumped into version number plugin which offers some cool ways to fix the issue. For instance -Dproject.version=${BUILD_YEAR}.${BUILDS_THIS_YEAR} will solve the issue for me

Problem

I have issue setting up the values for the defined variables

Quoting from the doc:

Initialization Values
Before the build is started, the number of builds this year / month / week / day can be specified on the command line or via the job's plugin-configuration web-GUI. If they are specified, then they will override whatever values are currently in production. This allows you to migrate your version number from another system to Jenkins if you choose to do so.

Additionally, it is possible to automatically override the number of builds this year / month / week / day with values taken from environment-variables. Instead of just providing a simple number in the form-fields of the job's plugin-configuration which overrides the value for the next build (as described above), you can instead provide an environment-variable whose value will be extracted and used during the next builds. If it is not set or its value is not convertible to a positive integer (without loosing precision), the value of the previous build will be taken instead and increased by one (as is the standard behavior).

In the last sentence, it says

If it is not set or its value is not convertible to a positive integer (without 
loosing precision), the value of the previous build will be taken instead 
and increased by one (as is the standard behavior)

So, going by this i built an jar with injected values of BUILD_YEAR and BUILDS_THIS_YEAR, worked as expected (jenkin says Building my_app_2019.1-SNAPSHOT). After that, i removed the variables assuming that they would be picked but unfortunatley jenkin says Building my_app_${BUILD_YEAR}.${BUILDS_THIS_YEAR}-SNAPSHOT.

There is no relevant doc around this or may be i have missed something totally obvious

Question

How do i ensure these var are injected correctly in my maven builds? or rather how do i populate the values using the plugin?

This is not a jenkins pipeline, its a simple jar builds.


Solution

  • Missed setting up Create a formatted version number as below :

    enter image description here

    updated as per image above and changed command to -Dproject.version=${VERSION_NUMBER}-SNAPSHOT.... voila!!!!!