maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Connolly" <stephen.alan.conno...@gmail.com>
Subject Re: Please comment: 2.1 Lifecycle Features on MAVEN Confluence space
Date Mon, 11 Feb 2008 09:33:33 GMT
From
http://docs.codehaus.org/display/MAVEN/Suppression%2C+Ordering%2C+and+Replacement+of+Plugins+and+Mojos+Bindings
one critical advantage of Maven over Ant or other build systems is its
universal, intuitive set of verbs used to build any project, it is
imperative
that we preserve the meaning of these verbs and not water them down with
subtle variations and modifiers
Allowing people to create new lifecycle phases willy-nilly will remove the
whole concept of having an intuitive set of verbs that are common across all
Maven projects.

I agree that the current set of verbs _may_ be missing one or two phases,
but we need to remember that in some cases the pre- and post- phases are
just a hack.

Actually, thinking about this a bit more I think that the main lifecycle is
probably complete and once good mechanisms for replacing executions and
ordering executions within a phase are available, we should be able to trim
back the pre- and post- phases to remove the very hacky ones.

Currently, the "Main" lifecycle looks like:

   - validate
   - generate-sources
   - process-sources
   - generate-resources
   - process-resources
   - compile
   - process-classes
   - generate-test-sources
   - process-test-sources
   - generate-test-resources
   - process-test-resources
   - test-compile
   - process-test-classes
   - test
   - package
   - pre-integration-test
   - integration-test
   - post-integration-test
   - verify
   - install
   - deploy

Now, I understand why we have a pre-integration-test and a
post-integration-test phase.  The idea being that we'd attach a mojo
execution to the pre-test that starts up our integration test environment
and another to the post-integration-test phase that stops the container for
us...

I was going to write that I'd want a pre-test and a post-test phase as well
because sometimes I want a mock container that is started up for unit and
functional tests... but then what happens when I type "mvn test" or "mvn
integration-test"? My container is started and never stopped!

What I really want is a way to wrap a phase with a mojo, that gets rid of
the need for all the pre- and post- phases that people look for.

I also think we need a separate phases for roll-out type activities, I would
propose placing one phase between integration-test and verify


   - ...
   - package
   - integration-test (as these are tests of the package)
   - stage (my idea here is that we deploy the artifact to a dev- or qa-
   container)
   - verify (here is where I would bind acceptance tests)
   - install
   - ...

and the other phase after deploy


   - ...
   - deploy
   - use (my idea here is that we deploy the artifact to the live
   environment!)


On Feb 11, 2008 8:44 AM, Wouter Hermeling <whermeling@gmail.com> wrote:

>
> Reading through the Deterministic Lifecycle Planning page...
>
> Do these changes make it possible to create new lifecycle phases???
>
> Imho this would really help maven to become an extendable build/project
> management tool for multiple platforms and purposes.
> --
> View this message in context:
> http://www.nabble.com/Please-comment%3A-2.1-Lifecycle-Features-on-MAVEN-Confluence-space-tp15170452s177p15407416.html
> Sent from the Maven Developers mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message