The Maven team is pleased to announce the 1.0 of Continuum. Continuum is a
continous integration server.

We have progressively improved Continuum over five previous releases and now provides
the following features:

 * Support for Maven 2.x
 
 * Support for Maven 1.x
 
 * Support for Ant
  
 * Support for shell scripts

 * Tight integration with Maven SCM

    * Subversion
    
    * CVS
    
    * Starteam

 * Easy to use web-based setup and  interface
 
 * XML-RPC and SOAP interfaces for integration, automation and remoting
 
 * Mail Notification
 
 * IM notification

   * IRC
   
   * Jabber
   
   * MSN

 * Blame Mechanism 

For a complete list of changes please refer to the complete changelog:

http://maven.apache.org/continuum/change-log.html

To get started with Continuum take a look at the download and install 
instructions:

http://maven.apache.org/continuum/download.html

And then take a look at our getting started guide:

http://maven.apache.org/continuum/guides/getting-started/index.html
