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:
- Merge feature branch into integration branch
- Build merged code, run unit tests
- If they pass, increment Maven version number
- Push merged code to origin's integration branch
- 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.
mvn versions:use-next-releasesormvn versions:set -DnewVersion=x.y.z- Andrzej Jozwik