Added: ant/ivy/site/target/history/2.2.0/index.html URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/index.html?rev=1005260&view=auto ============================================================================== --- ant/ivy/site/target/history/2.2.0/index.html (added) +++ ant/ivy/site/target/history/2.2.0/index.html Wed Oct 6 21:25:29 2010 @@ -0,0 +1,146 @@ + + + + + + + + +Documentation (2.2.0) | Apache Ivy + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + + + +
+ + +
+ + +
+ + + + + + + +
+
+ +

Documentation (2.2.0)

+
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:
    +
  1. 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.
  2. + +
  3. 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.
  4. +
+Ivy is open source and released under a very permissive Apache License.

Ivy has a lot of powerful 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 ivy file. To find the metadata and your dependencies' artifacts (usually jars), Ivy can be configured to use a lot of different repositories.

About this doc

+
+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 mailing-lists.

If you browse this documentation from your installation of Ivy, you can also check the 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 svn. This documentation uses xooki as its documentation engine, so you can very easily edit it and submit patches when you browse it from source.

A 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 docu mentation. 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 features.
Read our FAQ.
Ask for help on our mailing lists.
Report a bug or feature request in our issue tracking system.
Check external tools and resources.

Overview

+This documentation is composed of three main parts: +
    +
  • Tutorials
  • +The tutorials is the best way to begin to play with Ivy. You will easily and quickly learn the basics of Ivy.
  • 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).
  • Developer doc
  • +The developers's 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. +
+ +
+
+ + + + + + + + + + + + +
+ + Added: ant/ivy/site/target/history/2.2.0/install.html URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/install.html?rev=1005260&view=auto ============================================================================== --- ant/ivy/site/target/history/2.2.0/install.html (added) +++ ant/ivy/site/target/history/2.2.0/install.html Wed Oct 6 21:25:29 2010 @@ -0,0 +1,140 @@ + + + + + + + + +Installation | Apache Ivy + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + + + +
+ + +
+ + +
+ + + + + + + +
+
+ +

Installation

+
There are basically two ways to install Ivy: either manually or automatically.

Manually

+Download the version you want here, unpack the downloaded zip file wherever you want, and copy the ivy jar file into your ant lib directory (ANT_HOME/lib).

If you use ant 1.6.0 or superior, you can then simply go to the src/example/hello-ivy dir and run ant: if the build is successful, you have successfully installed Ivy!

If you use ant 1.5.1 or superior, you have to modify the build files in the examples:
- remove the namespace section at their head: xmlns:ivy="antlib:org.apache.ivy.ant"
- add taskdefs for ivy tasks: +
+  <taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/> +
+- replace ivy:xxx tasks by ivy-xxx
You can now run the build, if it is successful, you have successfully installed Ivy!

If the build is not successful, check the FAQ to see what might be the problem with the ivyrep resolver.

Ivy dependendencies

+ +One of the two binary versions of Ivy doesn't include the optional dependencies. To download them using Ivy, all you need is to run the Ant build file provided in the distribution. This will use Ivy itself to download the dependencies. Then you should see the Ivy optional dependencies in the lib directory, organized per configuration (see the ivy.xml for details about the configurations and their use).

Automatically

+If you want to use Ivy only in your ant build scripts, and have an internet connection when you build, you can download Ivy from this site and use the downloaded version automatically, using this simple build snippet: +
+    <property name="ivy.install.version" value="2.1.0-rc2" />
<condition property="ivy.home" value="${env.IVY_HOME}">
<isset property="env.IVY_HOME" />
</condition>
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />

<target name="download-ivy" unless="offline">

<mkdir dir="${ivy.jar.dir}"/>
<!-- download Ivy from web site so that it can be used even without any special installation -->
<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.versi on}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>

<target name="init-ivy" depends="download-ivy">
<!-- try to load ivy here from ivy home, in case the user has not already dropped
it into ant's lib dir (note that the latter copy will always take precedence).
We will not fail as long as local lib dir exists (it may be empty) and
ivy is in at least one of ant's lib dir or the local lib dir. -->
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>

</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target> +
+ +Then the only thing to do is to add the init-ivy target in the depends attribute of your targets using Ivy, and add the ivy namespace to your build script. See the self contained go-ivy example for details about this.
+
+
+ + + + + + + + + + + + +
+ + Added: ant/ivy/site/target/history/2.2.0/ivyfile.html URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/ivyfile.html?rev=1005260&view=auto ============================================================================== --- ant/ivy/site/target/history/2.2.0/ivyfile.html (added) +++ ant/ivy/site/target/history/2.2.0/ivyfile.html Wed Oct 6 21:25:29 2010 @@ -0,0 +1,177 @@ + + + + + + + + +Ivy Files | Apache Ivy + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + + + +
+ + +
+ + +
+ + + + + + + +
+
+ +

Ivy Files

+
Ivy use is entirely based on module descriptors known as "ivy files". Ivy files are xml files, usually called ivy.xml, containing the description of the dependencies of a module, its published artifacts and its configurations.

Here is the simplest ivy file you can write: +
+<ivy-module version="2.0">
<info organisation="myorg"
module="mymodule"
/>
</ivy-module> +
+ +If you want to see a sample module descriptor using almost all possibilities of ivy files, check this one, with or without xslt.

Before beginning the reference itself, it is required to have in mind the terminology defined in the main page of this reference documentation.

For those familiar with xml schema, the schema used to validate ivy files can be found here. For those using xsd aware IDE, you can declare the xsd in your ivy files to benefit from code completion / validation: +
+<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="myorg"
module="mymodule"
/>
</ivy-module> +
+ +

Dynamic and resolved ivy files

+ +A module descriptor (ivy file) is needed both before and after the publication of each revision of the module. Depending on the case, a module descriptor can be either dynamic or resolved:

Dynamic descriptor for module development

+ +During the module development time, between publications, the descriptor helps in managing all the possibly changing dependencies of the module. For that purpose, development time ivy files can declare dynamic dependencies to allow for a greater flexibility of use. Dynamic revision references like "latest.integration" or "1.0.+" are possible and may resolve to different artifacts at different times. Variables can be used for even more flexibility. Development time ivy files are hence called "dynamic", because they can produce different results over time. The dynamic ivy files are normally considered source files and kept with them (under SCM control).

Resolved descriptors for publishing

+ +At each publication, another kind of a module descriptor is needed to document the dependencies of the particular published revision of the module. For that purpose, the descriptor usually needs to be fixed as its dependencies should no longer change. In doing so, the published module revision gets fixed, explicitly resolved dependencies. No variables are allowed either. Such publication-friendly, static ivy files are called "resolved", because they should always produce the same results. The resolved ivy files are comparable to published artifacts and are kept with them in a repository.

Resolved ivy files are generated from their original dynamic ivy files via the deliver task.

Note that although it is technically possible to publish module revisions with dynamic ivy files, it is not a generally recommended practice.

Hierarchical Index

+
+ivy-module
info
license
ivyauthor
repository
description
configurations
conf
publications
artifact
conf
dependencies
dependency
con f
mapped
artifact
conf
include
conf
exclude
conf
exclude
override
conflict
conflicts
manager +
+ +

ivy-module

+Tag: ivy-module

The root tag of any ivy file (module descriptor).

Attributes

+ + + + + + + + +
AttributeDescriptionRequired
versionthe version of the ivy file specification - should be '2.0' with current version of ivyYes
+

Child elements

+ + + + + + + + + + + + + + + + +
ElementDescriptionCardinality
infocontains information about the described module1
configurationscontainer for configuration elements0..1
publicationscontainer for published artifact elements0..1
dependenciescontainer for dependency elements0..1
conflictssection to configure the conflict managers to use0..1
+ +
+
+ + + + + + + + + + + + +
+ + Added: ant/ivy/site/target/history/2.2.0/ivyfile/artifact-conf.html URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/ivyfile/artifact-conf.html?rev=1005260&view=auto ============================================================================== --- ant/ivy/site/target/history/2.2.0/ivyfile/artifact-conf.html (added) +++ ant/ivy/site/target/history/2.2.0/ivyfile/artifact-conf.html Wed Oct 6 21:25:29 2010 @@ -0,0 +1,140 @@ + + + + + + + + +conf | Apache Ivy + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + + + +
+ + +
+ + +
+ + + + + + + +
+
+ +

conf

+
Tag: conf Parent: artifact
+
+Indicates a public configuration in which enclosing artifact is published.

Attributes

+ + + + + + + + +
AttributeDescriptionRequired
namethe name of the module public configuration in which this artifact is published.
'*' wildcard can be used to designate all public configurations of this module
Yes
+ + +
+
+ + + + + + + + + + + + +
+ +