Ivy Dependency Manager
Ivy is a dependency manager for Java dependency management. All the dependencies of a project can be specified in an Ivy XML file and Ivy takes care of the rest.
Key feature of Ivy are,
- Integration with Apache Ant.
- Transitive dependencies - This means that if a project has a dependency on a component and the component has dependencies on other components, all the dependencies are automatic in your project!
- Provides dependency reports including graphical reports for seeing transitive dependencies.
Following is a sample Ivy configuration file,
Ant build tool from Apache
Ant is a scripting tool for automating Java software build process. The scripting language is based on XML. Ant can be extended using Java classes. The built in tasks in Ant are also implemented as Java classes.
Following is a sample build file,
<project name=”TestProject” default=”dist” basedir=”.”>
<property name=”src” location=”src”/>
<property name=”build” location=”build”/>
<property name=”dist” location=”dist”/>
<target name=”init”>
<mkdir dir=”${build}”/>
</target>
<target name=”compile” depends=”init”
description=”compile the source ” >
<javac srcdir=”${src}” destdir=”${build}”/>
</target>
<target name=”dist” depends=”compile”
description=”generate the distribution” >
<mkdir dir=”${dist}/lib”/>
<jar jarfile=”${dist}/lib/MyProject-${DSTAMP}.jar” basedir=”${build}”/>
</target>
</project>
The Ant Manual gives a complete overview of this tool.
Maven from Apache
Maven is an open source tool for project management and build management. It is based on XML technology called Project Object Model (POM) which defines a project activities including build. Maven automates build scripts normally written in Ant.
Some of the features offered by Maven are support for multiple projects with inheritance, pre-configured repository for open source projects already released, automated release management, extensible using plugins and is based on the ’simplification by convention’ principle.