Sanjay,

You might want to look at continuous integration engines like CruiseControl, 
Anthill or Luntbuild, which take care of the tagging and are ideal for 
nightly builds. Maven would then just be used for build and packaging. CVS 
operations are handled by the build server. However, for application 
releases (meaning a software release to production), I would use Maven to 
tag and assign a version number. These type of releases are not part of a 
continuous build and are often refered to as "push-button" operations.

Maven could go a bit further with the automation of releases. Right now a 
lot of it still manual (e.g. assigning a version number, etc.). I've written 
a plugin that automates all of that by automatically incrementing the last 
digit of an application's version upon release.

Cheers,
Thomas

On 8/18/05, Sanjay Choudhary <[EMAIL PROTECTED]> wrote:
> 
> We currently use Maven 1.0.2 only for building a J2EE application. 
> *Developers
> aren't using it as yet.* :-( Our current process is described below. We 
> run
> this process everynight to create EAR and deploy them in Sandbox. I will
> appreciate everyone's suggestions and comments to improve the process.
> 1. Bootstrap all projects from CVS. Get latest from head or branch. (We
> have maven.xml in the our bootstrap project that does check outs for all 
> the
> projects from CVS).
> 2. Perform release - We use multiproject:goal with -Dgoal=performrelease.
> In this task we tag our code in CVS and update project.xml's with the new
> version.
> 3. Use maven and build EAR.
> 4. Deploy EAR in sandbox - This is done using Jackal scripts.
> we have a unix shell script that runs(from cron job) the above mentioned
> process. Value of CVS tag and version numbers are determined using perl 
> and
> passed to maven.
> Issues with this process.
> ==================
> For some reason, if step 3 fails to build the EAR file. (For reasons like
> compilation errors etc) Getting build process back in line is lot of work.
> For example, if my last successfull build was 1.0.1 and now I am trying to
> build 1.0.2.
> 1. Bootstrap works ok
> 2. Prepare release will tag the cvs and update the project.xml for current
> version to be 1.0.2
> 3. BUILD FAILS.
> Developer fixes the bug and now when we will try to do release
> 1. Bootstrap new code.
> 2. Attempt Prepare Release - it fails when it tries to find the depencies
> for version 1.0.2.
> Since this is a J2EE application, there are dependencies of EJB's , WAR
> project on Java projects.Also some Java projects are dependent on other 
> java
> projects.
> I am not sure if we are following the right process to build. Our goal is
> to tag code in CVS and build everynight ( and may be multiple times in a 
> day
> in future). Also if build fails, email out the notifications.
> I will appreciate any comments, suggestions and any experience.
> Thanks,
> Sanjay
> 
>

Reply via email to