Jump to: navigation, search

Hudson-ci/Planning/Improved Maven Support

< Hudson-ci‎ | Planning
Revision as of 15:03, 5 September 2011 by Henrik.hlyh.dk (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Hudson Continuous Integration Server
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source
Hudson-bust.png Better Maven Integration











Overview

While the inital set of features in the new Maven3 integration was a big step forward, there are still some rough areas


Maven Release Support

Currently doing a maven release is quite a cumbersome setup. In order to make a release work in a maven + git setup have run into the following issues


  • Because of a bug in maven, the inner release step does not use the settings file provided to maven.
  • I have yet to find a way to configure the git plugin in such a way that the release plugin can push the changes back, I always end up in a "your not on a branch" or other git config errors when releasing
  • Since the relase step is not integrated with the SCM plugin I have to replicate such information, e.g. in git I need to set the slave's username and email


In order to make releasing work I have done

  • Install a second Maven 3.0.3 as maven provider for the M3 integration. This Maven 3 has a custom settings.xml built in.
  • Before running the actual release I have a shell script build step that does
    • Runs git config user.name
    • Runs git config user.email
    • runs git checkout master


Suggested solution:

  • Similar approach to what jenkins is doing [Artifactory Plugin - Release Management ]
  • It should be optional to build the snapshot version first
  • Only do the SCM changes once the release version has built correctly (to avoid manual clean up if it breaks)
  • Integrated with at least subversion and git