# Velocity dependencies

Velocity has a number of external jar dependencies. However, not all of these are needed every time. This document should help you do decide which jars must also be present if you want to integrate Velocity into your application.

All of these jars must be present when building Apache Velocity. The build process downloads all of them automatically from the Internet.

jar name | Required | Explanation
--- | --- | ---
commons-collections | Yes | Needed for all parts of Velocity
commons-lang | Yes | Needed for all parts of Velocity
commons-logging | No | Must be present if log system is configured to use CommonsLogLogChute . Otherwise, it is not needed.
oro | Yes | Must be present if you have Velocity configured to automatically escape references . Otherwise, it is not needed.
log4j | No | Must be present if log4j Logging has been selected. Not needed if any other logging style has been selected.
logkit (or avalon-logkit) | No | Must be present if Avalon Logging has been selected. Not needed if any other logging style has been selected.
servletapi | No | Only needed when the VelocityServlet or ServletLogChute are used. Should normally be supplied by the servlet container. VelocityServlet is deprecated and should be replaced with VelocityViewServlet from the velocity-tools distribution.
jdom | No | Only required for the deprecated Anakia tool / ant task
werken-xpath | No | Only required for the deprecated Anakia tool / ant task
antlr | No | Only required for the deprecated Anakia tool / ant task
ant | No | Only needed for compilation.
junit | No | Only needed for running the tests during compilation.
hsqldb | No | Only needed for running the tests during compilation.

The most common case is the integration of the Velocity runtime into your application. In this case, you must add commons-collections and commons-lang to your application (and optional Oro or commons-logging if required). If you already have one or more of these libraries in your application, you should check if you need to update their versions.

The auto-generated dependency report lists all mandatory dependencies as compile and all optional dependencies as provided, though it fails to properly reflect the optional nature of the Oro and Commons-Logging dependencies.