You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Sanjay Choudhary <ch...@gmail.com> on 2005/08/19 00:14:11 UTC

Maven unattended build process ---?

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

Re: Maven unattended build process ---?

Posted by Sanjay Choudhary <ch...@gmail.com>.
Hi Tom,
 Is your plug-in public or private? If its public, whats the name of your 
plug-in?

 On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote: 
> 
> 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 <ch...@gmail.com> 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
> >
> >
> 
>

Re: Maven unattended build process ---?

Posted by dan tran <da...@gmail.com>.
try maven-scm-plugin 1.5.1-SNAPSHOT still in svn.

svn co https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk

then goto trunk/scm and do maven install


-D

On 8/18/05, Sanjay Choudhary <ch...@gmail.com> wrote:
> Hi Dan,
>  This makes perfect sense. Thanks for your help.
>  In one of your steps you said "tag the entire source source". How do you
> tag it? Do you use ant rtag or someother mechanism?
>  Thanks,
> Sanjay
>  On 8/18/05, dan tran <da...@gmail.com> wrote:
> >
> > Sanjay, you and I have the same build requirements ( tag daily build)
> > but I dont use
> > multiproejct:prepare-release. This is the different.
> >
> > In my case, I have a single version property defined at the root pom, and
> > all
> > subproject's version and dependency's version, except the thirdpary
> > ones, reuse that property. For each build, i do:
> >
> > - fetch the root property file
> > - increment the build
> > - check it in
> > - tag the entire source tree
> > - fetch the entire source tree using the tag
> > - build and deploy all built artifacts
> >
> > All those steps can be done by a bootstrap project that is not part of
> > your source
> > tree.
> >
> > In your CI, like a watch dog build, your can keep scm:update or
> > scm:checkout
> > the source and build WITHOUT deploy so that when it fails you can
> > notify developer.
> >
> > hope it helps!!!
> >
> > -D
> >
> >
> >
> >
> > On 8/18/05, Sanjay Choudhary <ch...@gmail.com> wrote:
> > > Hi Dan,
> > > thanks for your comments and I tried it but it fails
> > > First Build
> > > 1. Bootstrap code for release 1.0.1
> > > 2. multiproject:prepare-release will Tag in CVS and project.xml gets
> > updated
> > > with version 1.0.1
> > > 3. maven <goal-name>
> > > Second build
> > > 1. Bootstrap code.
> > > 2. mulitproject:prepare-release will Tag in CVS and project.xml gets
> > updated
> > > with version 1.0.2
> > > 3. maven <goal-name> --- Build fails
> > > Third build
> > > 1. Bootstrap code
> > > 2. multiproject:prepare-release - at time of tagging and updating POM's
> > > maven will check for the dependecies. My local repository and remote
> > > repository doesn't have dependencies for version 1.0.2. Hence, this
> > fails.
> > > 3. Even build fails for the same reason.
> > > You said "If your have a night build fail. You should increment the
> > build
> > > number and tag it again for the next build." But how is this possible?
> > > Please help me understand with details.
> > > Appreciate your time.
> > > -sanjay
> > > On 8/18/05, dan tran <da...@gmail.com> wrote:
> > > >
> > > > Sanjay, beside from CI as Thomas suggested.
> > > >
> > > > If your have a night build fail. You should increment the build
> > > > number and tag it again for the next build.
> > > >
> > > > However even with simple cron job to do scm:update and build every
> > > > hour would reduce your chance of failed nightly build big time. It
> > > > works great for me.
> > > >
> > > > -Dan
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote:
> > > > > 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 <ch...@gmail.com> 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
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Maven unattended build process ---?

Posted by Sanjay Choudhary <ch...@gmail.com>.
Hi Dan,
 This makes perfect sense. Thanks for your help.
 In one of your steps you said "tag the entire source source". How do you 
tag it? Do you use ant rtag or someother mechanism?
 Thanks,
Sanjay
 On 8/18/05, dan tran <da...@gmail.com> wrote: 
> 
> Sanjay, you and I have the same build requirements ( tag daily build)
> but I dont use
> multiproejct:prepare-release. This is the different.
> 
> In my case, I have a single version property defined at the root pom, and 
> all
> subproject's version and dependency's version, except the thirdpary
> ones, reuse that property. For each build, i do:
> 
> - fetch the root property file
> - increment the build
> - check it in
> - tag the entire source tree
> - fetch the entire source tree using the tag
> - build and deploy all built artifacts
> 
> All those steps can be done by a bootstrap project that is not part of
> your source
> tree.
> 
> In your CI, like a watch dog build, your can keep scm:update or 
> scm:checkout
> the source and build WITHOUT deploy so that when it fails you can
> notify developer.
> 
> hope it helps!!!
> 
> -D
> 
> 
> 
> 
> On 8/18/05, Sanjay Choudhary <ch...@gmail.com> wrote:
> > Hi Dan,
> > thanks for your comments and I tried it but it fails
> > First Build
> > 1. Bootstrap code for release 1.0.1
> > 2. multiproject:prepare-release will Tag in CVS and project.xml gets 
> updated
> > with version 1.0.1
> > 3. maven <goal-name>
> > Second build
> > 1. Bootstrap code.
> > 2. mulitproject:prepare-release will Tag in CVS and project.xml gets 
> updated
> > with version 1.0.2
> > 3. maven <goal-name> --- Build fails
> > Third build
> > 1. Bootstrap code
> > 2. multiproject:prepare-release - at time of tagging and updating POM's
> > maven will check for the dependecies. My local repository and remote
> > repository doesn't have dependencies for version 1.0.2. Hence, this 
> fails.
> > 3. Even build fails for the same reason.
> > You said "If your have a night build fail. You should increment the 
> build
> > number and tag it again for the next build." But how is this possible?
> > Please help me understand with details.
> > Appreciate your time.
> > -sanjay
> > On 8/18/05, dan tran <da...@gmail.com> wrote:
> > >
> > > Sanjay, beside from CI as Thomas suggested.
> > >
> > > If your have a night build fail. You should increment the build
> > > number and tag it again for the next build.
> > >
> > > However even with simple cron job to do scm:update and build every
> > > hour would reduce your chance of failed nightly build big time. It
> > > works great for me.
> > >
> > > -Dan
> > >
> > >
> > >
> > >
> > >
> > > On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote:
> > > > 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 <ch...@gmail.com> 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
> > > > >
> > > > >
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
>

Re: Maven unattended build process ---?

Posted by dan tran <da...@gmail.com>.
Sanjay, you and I have the same build requirements ( tag daily build)
but I dont use
multiproejct:prepare-release.  This is the different.

In my case, I have a single version property defined at the root pom, and all 
subproject's version and dependency's version, except the thirdpary
ones, reuse that property. For each build, i do:

  - fetch the root property file
  - increment the build
  - check it in
  - tag the entire source tree
  - fetch the entire source tree using the tag
  - build and deploy all built artifacts

All those steps can be done by a bootstrap project that is not part of
your source
tree. 

In your CI, like a watch dog build, your can keep scm:update or scm:checkout
the source and build WITHOUT deploy so that when it fails you can 
notify developer.

hope it helps!!!

-D




On 8/18/05, Sanjay Choudhary <ch...@gmail.com> wrote:
> Hi Dan,
>  thanks for your comments and I tried it but it fails
>  First Build
> 1. Bootstrap code for release 1.0.1
> 2. multiproject:prepare-release will Tag in CVS and project.xml gets updated
> with version 1.0.1
> 3. maven <goal-name>
>  Second build
> 1. Bootstrap code.
> 2. mulitproject:prepare-release will Tag in CVS and project.xml gets updated
> with version 1.0.2
> 3. maven <goal-name> --- Build fails
>  Third build
> 1. Bootstrap code
> 2. multiproject:prepare-release - at time of tagging and updating POM's
> maven will check for the dependecies. My local repository and remote
> repository doesn't have dependencies for version 1.0.2. Hence, this fails.
> 3. Even build fails for the same reason.
>  You said "If your have a night build fail. You should increment the build
> number and tag it again for the next build." But how is this possible?
> Please help me understand with details.
>  Appreciate your time.
>  -sanjay
>    On 8/18/05, dan tran <da...@gmail.com> wrote:
> >
> > Sanjay, beside from CI as Thomas suggested.
> >
> > If your have a night build fail. You should increment the build
> > number and tag it again for the next build.
> >
> > However even with simple cron job to do scm:update and build every
> > hour would reduce your chance of failed nightly build big time. It
> > works great for me.
> >
> > -Dan
> >
> >
> >
> >
> >
> > On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote:
> > > 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 <ch...@gmail.com> 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
> > > >
> > > >
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Maven unattended build process ---?

Posted by Sanjay Choudhary <ch...@gmail.com>.
Hi Dan,
 thanks for your comments and I tried it but it fails
 First Build
1. Bootstrap code for release 1.0.1
2. multiproject:prepare-release will Tag in CVS and project.xml gets updated 
with version 1.0.1
3. maven <goal-name>
 Second build
1. Bootstrap code.
2. mulitproject:prepare-release will Tag in CVS and project.xml gets updated 
with version 1.0.2
3. maven <goal-name> --- Build fails
 Third build
1. Bootstrap code
2. multiproject:prepare-release - at time of tagging and updating POM's 
maven will check for the dependecies. My local repository and remote 
repository doesn't have dependencies for version 1.0.2. Hence, this fails.
3. Even build fails for the same reason.
 You said "If your have a night build fail. You should increment the build
number and tag it again for the next build." But how is this possible? 
Please help me understand with details.
 Appreciate your time.
  -sanjay
    On 8/18/05, dan tran <da...@gmail.com> wrote: 
> 
> Sanjay, beside from CI as Thomas suggested.
> 
> If your have a night build fail. You should increment the build
> number and tag it again for the next build.
> 
> However even with simple cron job to do scm:update and build every
> hour would reduce your chance of failed nightly build big time. It
> works great for me.
> 
> -Dan
> 
> 
> 
> 
> 
> On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote:
> > 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 <ch...@gmail.com> 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
> > >
> > >
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
>

Re: Maven unattended build process ---?

Posted by dan tran <da...@gmail.com>.
Sanjay, beside from CI as Thomas suggested.

If your have a night build fail.  You should increment the build
number and tag it again for the next build.

However even with simple cron job to do scm:update  and build every
hour would reduce your chance of failed nightly build big time. It
works great for me.

-Dan





On 8/18/05, Thomas Van de Velde <th...@gmail.com> wrote:
> 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 <ch...@gmail.com> 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
> >
> >
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Maven unattended build process ---?

Posted by Thomas Van de Velde <th...@gmail.com>.
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 <ch...@gmail.com> 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
> 
>