<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">











<html>
  <head>
    <title>Apache Velocity - Velocity</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <link rel="alternate" href="http://feeds.feedburner.com/ApacheVelocitySiteNews" type="application/rss+xml" title="Apache Velocity - Velocity News" />
          <meta name="author" content="Velocity Documentation Team" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="../../../" id="bannerLeft">
    
                                            <img src="images/velocity_project_wide.png" alt="" />
    
            </a>
                          <span id="bannerRight">
    
                                            <img src="images/velocity-logo.png" alt="" />
    
            </span>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
    
            <div class="xleft">
          
          <a href="http://www.apache.org/">Apache</a>
              &gt;
      
          <a href="../../../">Velocity</a>
              &gt;
      
          Velocity Engine
                </div>
            <div class="xright">      <a href="../../devel/">Engine</a>
          |
          <a href="../../../tools/devel/">Tools</a>
          |
          <a href="../../../anakia/devel/">Anakia</a>
          |
          <a href="../../../texen/devel/">Texen</a>
          |
          <a href="../../../docbook/">DocBook</a>
          |
          <a href="../../../dvsl/devel/">DVSL</a>
          
  

  
    
  
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
    
                   <h5>Velocity</h5>
        <ul>
              
    <li class="none">
              <strong>General</strong>
        </li>
              
    <li class="none">
              <a href="overview.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="getting-started.html">Getting Started</a>
        </li>
              
    <li class="none">
              <a href="webapps.html">Web Applications</a>
        </li>
              
    <li class="none">
              <a href="../../../download.cgi">Download</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/VelocityFAQ">FAQ (Wiki)</a>
        </li>
          </ul>
          <h5>Docs</h5>
        <ul>
              
    <li class="none">
              <a href="user-guide.html">User Guide</a>
        </li>
              
    <li class="none">
              <a href="developer-guide.html">Developer Guide</a>
        </li>
              
    <li class="none">
              <a href="vtl-reference-guide.html">VTL Reference</a>
        </li>
              
    <li class="none">
              <a href="glossary.html">Glossary</a>
        </li>
          </ul>
          <h5>Developers</h5>
        <ul>
              
    <li class="none">
              <a href="license.html">License</a>
        </li>
              
    <li class="none">
              <a href="apidocs/index.html">Javadoc</a>
        </li>
              
    <li class="none">
              <a href="changes-report.html">Changes</a>
        </li>
              
    <li class="none">
              <a href="jira-report.html">Resolved Issues</a>
        </li>
              
    <li class="none">
              <a href="upgrading.html">Upgrading</a>
        </li>
              
    <li class="none">
              <a href="jar-dependencies.html">Dependencies</a>
        </li>
              
    <li class="none">
              <a href="http://svn.apache.org/viewvc/velocity/engine/trunk/">Source Code Repository</a>
        </li>
              
    <li class="none">
              <a href="build.html">Building from Source</a>
        </li>
          </ul>
          <h5>Community</h5>
        <ul>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/">Wiki</a>
        </li>
              
    <li class="none">
              <a href="../../../news.html">Recent News</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/PoweredByVelocity">Powered By Velocity</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/VelocityEditors">IDE/Editor Plugins</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/PublishedArticlesAndBooks">Articles and Books</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/GetInvolved">Get Involved</a>
        </li>
              
    <li class="none">
              <a href="../../../contact.html">Mailing Lists</a>
        </li>
          </ul>
          <h5>Velocity Development</h5>
        <ul>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/RoadMap">Road Map</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/CodeStandards">Coding Standards</a>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/velocity/DocumentationGuidelines">Documentation Guidelines</a>
        </li>
              
    <li class="none">
              <a href="https://issues.apache.org/jira/browse/VELOCITY">Issues</a>
        </li>
              
    <li class="none">
              <a href="../../../who-we-are.html">Who we are</a>
        </li>
          </ul>
          <h5>Translations</h5>
        <ul>
              
    <li class="none">
              <a href="http://www.jajakarta.org/velocity/">Site (Japanese)</a>
        </li>
              
    <li class="none">
              <a href="translations/user-guide_fi.html">User's Guide (Finnish)</a>
        </li>
              
    <li class="none">
              <a href="translations/user-guide_fr.html">User's Guide (French)</a>
        </li>
              
    <li class="none">
              <a href="translations/user-guide_es.html">User's Guide (Spanish)</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
                                             
                        
                        
                        <a class="poweredBy" href="../../../" title="Apache Velocity" ><img class="poweredBy" alt="Apache Velocity" src="images/pbv90x30.png" /></a>
                                
                        
                        
                        <a class="poweredBy" href="../../../rss/news.rss" title="Velocity News Feed" ><img class="poweredBy" alt="Velocity News Feed" src="images/feed-icon-24x24.jpg" /></a>
                    
       <iframe src="http://www.apache.org/ads/buttonbar.html"
               style="border-width:0; float: left" frameborder="0" scrolling="no"
               width="135"
               height="265" ></iframe>

           
  

  
    
  
  
    
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2><a name="What_is_Velocity"></a>
What is Velocity?</h2>
<p> Velocity is a Java-based template engine. It permits anyone to use a simple yet
        powerful template language to reference objects defined in Java code. </p>
<p> When Velocity is used for web development, Web designers can work in parallel with
        Java programmers to develop web sites according to the Model-View-Controller (MVC)
        model, meaning that web page designers can focus solely on creating a site that looks
        good, and programmers can focus solely on writing top-notch code. Velocity
        separates Java code from the web pages, making the web site more maintainable over its
        lifespan and providing a viable alternative to
        <a href="http://java.sun.com/products/jsp/" class="externalLink">Java Server Pages</a>
 (JSPs) or
        <a href="http://www.php.net/" class="externalLink">PHP</a>
. </p>
<p> Velocity's capabilities reach well beyond the realm of the web; for example, it can
        be used to generate SQL, PostScript and XML (see
        <a href="anakia.html">Anakia</a>
 for more information on XML
        transformations) from templates. It can be used either as a standalone utility for
        generating source code and reports, or as an integrated component of other systems.
        For instance, Velocity provides template services for the
        <a href="http://jakarta.apache.org/turbine/" class="externalLink">Turbine</a>
 web application
        framework, together resulting in a view engine facilitating development of web
        applications according to a true MVC model. </p>
</div>
<div class="section"><h2><a name="Where_do_I_get_releases"></a>
Where do I get releases?</h2>
<p> The current stable release version is version 1.6. </p>
<p> The release distribution is available as a combined source/binary distribution in
        <code>tar.gz</code> and
        <code>zip</code> formats, and can be downloaded through the
        <a href="http://velocity.apache.org/download.cgi" class="externalLink">
          Apache Mirror system</a>
. </p>
<p> The Velocity jars are also available through the
        <a href="http://repo1.maven.org/maven2/org/apache/velocity/" class="externalLink">central Maven
          repository</a>
. </p>
<p> Older releases are archived at the
        <a href="http://archive.apache.org/dist/velocity/engine/" class="externalLink"> Apache
          Velocity archives</a>
. </p>
</div>
<div class="section"><h2><a name="Where_do_I_get_nightly_snapshots"></a>
Where do I get nightly snapshots?</h2>
<p> Nightly snapshots of the Velocity subversion source code tree can be found
        on our <a href="http://vc.apache.org/snapshots/velocity/" class="externalLink">nightly snapshot site</a>
. </p>
<p><b>Caveat!</b>
 These snapshots are generated automatically from the project source code repository. As
        this is our live development workspace, there are no guarantees as to what you will
        find there, although we do our best to maintain a buildable source tree. If you are
        looking for the stable supported release, please use the current release of
        Velocity. </p>
<p><b>Please be aware that these snapshots are not official
     releases of Apache Velocity software. They are provided for
     developer convenience only!</b>
</p>
<p> If you are willing to risk getting dirty, we invite you to try the nightly snapshot to
        see the current state of affairs. (and help out!)
        <a href="http://www.apache.org/dev/version-control.html" class="externalLink">Public Subversion
          access</a>
 is also available. </p>
</div>
<div class="section"><h2><a name="How_do_I_contribute_give_feedback_fix_bugs_and_so_on"></a>
How do I contribute, give feedback, fix bugs and so on?</h2>
<p> The Velocity project appreciates any contributions, including documentation
        help, source code and feedback. Suggested changes should come in the form of source
        code and/or feedback. </p>
<ul><li> Report bugs, ask questions, and help new users on the
          <a href="http://velocity.apache.org/contact.html" class="externalLink"> Velocity
            mailing lists</a>
. </li>
<li> There's a list of issues waiting to be addressed in
          <a href="https://issues.apache.org/jira/browse/VELOCITY" class="externalLink">our bug tracker</a>
. </li>
<li><a href="http://wiki.apache.org/velocity/velocity" class="externalLink"> Our Wiki</a>

          has a large collection of community written content. Add your own article or
          contribute to the FAQ! </li>
<li> Read-only access to the Subversion repository is available both
          <a href="http://svn.apache.org/repos/asf/velocity/engine/trunk/" class="externalLink">
            online</a>
 and with a
          <a href="http://www.apache.org/dev/version-control.html" class="externalLink"> Subversion
            client</a>
. </li>
</ul>
</div>

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2000-2008
    
          The Apache Software Foundation
          
  

  
    
  
  
    
             Last Published: 2008-12-01 08:05:36
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
