<!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 Getting Started</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 Getting Started 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">
              <a href="index.html">General</a>
        </li>
              
    <li class="none">
              <a href="overview.html">Overview</a>
        </li>
              
    <li class="none">
              <strong>Getting Started</strong>
        </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="Getting_Started"></a>
Getting Started</h2>
<p>

Velocity is easy to use! A quick way to get started is to skim the
references below, then look at the examples and source provided in the
distribution. <i>For developers writing web-based applications, the Web
Application Guide is highly recommended!</i>
<ul><li><a href="user-guide.html">User's Guide</a>
 - explains how to write Velocity templates
    </li>
<li><a href="developer-guide.html">Developer's Guide</a>
 - explains how to use Velocity inside Java programs
    </li>
<li><a href="vtl-reference-guide.html">VTL Reference</a>
 - concise syntax for Velocity Template Language (VTL)
    </li>
<li><a href="webapps.html">Web Application Guide</a>
 - web-based application techniques and
    VelocityViewServlet tutorial
    </li>
</ul>



   The best place to start is with the examples provided in the distribution,
   and with the source code itself, which is included.
</p>
</div>
<div class="section"><h2><a name="Downloading_Velocity"></a>
Downloading Velocity</h2>
<p>
        You can download the latest release version of
        <a href="http://velocity.apache.org/download.cgi#engine" class="externalLink">Velocity</a>

        or <a href="http://velocity.apache.org/download.cgi#tools" class="externalLink">Velocity Tools</a>

        from the main Apache Velocity download site.  For Velocity itself, source is included with the binary download.
    </p>
<p>
        If you want to download the latest source, you can do so via the Subversion (svn)
        source control system, or download a complete
        <a href="http://vc.apache.org/snapshots/velocity/" class="externalLink">nightly snapshot.</a>
</p>
<p>
        Instructions for building Velocity from source can be found in the
        <a href="build.html">Build</a>
 document.
    </p>
</div>
<div class="section"><h2><a name="API_Documentation"></a>
API Documentation</h2>
<p>
Our API documentation is available <a href="http://velocity.apache.org/engine/devel/apidocs/" class="externalLink">online</a>
,
<a href="api/index.html">as part of the distribution package</a>
, and of course, you can generate it
yourself from the included source code.
</p>
<p>
    If you would like to create a full set
    of detailed API documentation for Velocity, go to the
    <code>build</code> directory and run:
</p>
<div class="source"><pre>
ant javadocs
</pre>
</div>
<p>
The docs will be found in the <code>/bin/apidocs/</code> directory.
</p>
<p><b>Note:</b>
 Velocity uses the <a href="http://ant.apache.org/" class="externalLink">Apache Ant</a>

build tool for all code and documentation generation, so you will need to have it
installed. Velocity requires at least Apache Ant 1.6.
   </p>
</div>

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2000-2009
    
          The Apache Software Foundation
          
  

  
    
  
  
    
             Last Published: 2009-03-19 08:47:45
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
