I'm using Jenkins to build Maven Java projects and deploy them to a Nexus repository. I also use Git, although I'm more used to Subversion so my Git knowledge is limited.

I'd like Jenkins/Maven to:

  1. Merge feature branch into integration branch
  2. Build merged code, run unit tests
  3. If they pass, increment Maven version number
  4. Push merged code to origin's integration branch
  5. Deploy artifact to Nexus repository

I gather the Git merging can be achieved thus: http://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/

I've also read a lot about the maven-release-plugin.

I'm not sure how exactly to achieve the above results. If I hardcode SCM details into each project's POM, then won't the maven-release-plugin be acting only on that repository rather than Jenkins' local one?

If I use a solution of having Jenkins pass a environment variable to Maven to specify the version number, then I'd expect to have local version resolution issues in my IDE.

Edit
Report