////
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
////

Welcome to the official Ivy documentation.

== What is Ivy?

Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies. It is characterized by the following:

. flexibility and configurability - Ivy is essentially process agnostic and is not tied to any methodology or structure. Instead it provides the necessary flexibility and configurability to be adapted to a broad range of dependency management and build processes.

. tight integration with Apache Ant - while available as a standalone tool, Ivy works particularly well with Apache Ant providing a number of powerful Ant tasks ranging from dependency resolution to dependency reporting and publication.

Ivy is open source and released under a very permissive link:https://www.apache.org/licenses/[Apache License].

Ivy has a lot of powerful link:https://ant.apache.org/ivy/features.html[features], the most popular and useful being its flexibility, integration with Ant, and its strong transitive dependencies management engine.

The transitive dependencies management is a feature which lets you get dependencies of your dependencies, transitively. In order to address this general problem, Ivy needs to find metadata about your modules, usually in an link:ivyfile{outfilesuffix}[Ivy file]. To find the metadata and your dependencies' artifacts (usually jars), Ivy can be configured to use a lot of different link:settings/resolvers{outfilesuffix}[repositories].

== About this doc

[NOTE]
====
Tip: The menu on the left is dynamic, you  can click on the arrows to browse the menu without going to each page.
====

This documentation has been migrated from the old Ivy web site hosted by Jayasoft, feel free to report any problem on the link:https://ant.apache.org/ivy/mailing-lists.html[mailing-lists].

If you browse this documentation from your installation of Ivy, you can also check the link:https://ant.apache.org/ivy/[online version] for the latest updates.

You can also browse this documentation offline either by downloading the documentation distribution, or by checking out the doc directory from git. This documentation uses link:http://asciidoctor.org/[asciidoc] as its documentation engine, so you can very easily link:https://ant.apache.org/ivy/get-involved.html[edit it and submit patches] when you browse it from source.

A link:book{outfilesuffix}[printer-friendly version] of this whole documentation is also provided for your convenience.

Since Ivy 2.0.0-alpha-2, we keep an online history of the documentation. You can thus browse history versions online (in the history menu in the web site) and even check the trunk version documentation currently in development.

For earlier versions, we suggest downloading the documentation to browse the documentation corresponding to the version you use. The full history of Ivy versions with corresponding links for download is available in the history menu on the web site.

== Other places to go

Check out Ivy link:https://ant.apache.org/ivy/features.html[features]. +
Read our link:https://ant.apache.org/ivy/faq.html[FAQ]. +
Ask for help on our link:https://ant.apache.org/ivy/mailing-lists.html[mailing lists]. +
Report a bug or feature request in our link:https://ant.apache.org/ivy/issues.html[issue tracking system]. +
Check link:https://ant.apache.org/ivy/links.html[external tools and resources]. +

== Overview

This documentation is composed of three main parts:

link:tutorial{outfilesuffix}[Tutorials]::
The tutorials is the best way to begin to play with Ivy. You will easily and quickly learn the basics of Ivy.

link:reference{outfilesuffix}[Reference]::
The reference documentation gives you all the details of Ivy.
The introduction part is particularly useful: it defines some vocabulary, explains main concepts such as dependency resolvers and patterns, and gives an overview of how Ivy works internally.
It's also in the reference doc that you will find all you always dreamed to know about Ivy settings, Ivy files, and Ivy use (especially with Ant).

link:dev{outfilesuffix}[Developer doc]::
The developer doc is useful for users who would like to extend Ivy or build it from source. It's also the documentation used by the Ivy team, so you will also find information about how we make releases.
