You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ma...@apache.org on 2010/10/06 23:25:35 UTC

svn commit: r1005260 [1/45] - in /ant/ivy/site/target/history/2.2.0: ./ configuration/ configuration/caches/ configuration/macrodef/ configuration/namespace/ dev/ images/ ivyfile/ js/ resolver/ samples/ settings/ settings/caches/ settings/macrodef/ set...

Author: maartenc
Date: Wed Oct  6 21:25:29 2010
New Revision: 1005260

URL: http://svn.apache.org/viewvc?rev=1005260&view=rev
Log:
Preparing site for Ivy 2.2.0 release

Added:
    ant/ivy/site/target/history/2.2.0/
    ant/ivy/site/target/history/2.2.0/ant.html
    ant/ivy/site/target/history/2.2.0/bestpractices.html
    ant/ivy/site/target/history/2.2.0/book.html
    ant/ivy/site/target/history/2.2.0/concept.html
    ant/ivy/site/target/history/2.2.0/configuration/
    ant/ivy/site/target/history/2.2.0/configuration.html
    ant/ivy/site/target/history/2.2.0/configuration/caches/
    ant/ivy/site/target/history/2.2.0/configuration/caches.html
    ant/ivy/site/target/history/2.2.0/configuration/caches/cache.html
    ant/ivy/site/target/history/2.2.0/configuration/caches/ttl.html
    ant/ivy/site/target/history/2.2.0/configuration/classpath.html
    ant/ivy/site/target/history/2.2.0/configuration/conf.html
    ant/ivy/site/target/history/2.2.0/configuration/conflict-managers.html
    ant/ivy/site/target/history/2.2.0/configuration/include.html
    ant/ivy/site/target/history/2.2.0/configuration/latest-strategies.html
    ant/ivy/site/target/history/2.2.0/configuration/lock-strategies.html
    ant/ivy/site/target/history/2.2.0/configuration/macrodef/
    ant/ivy/site/target/history/2.2.0/configuration/macrodef.html
    ant/ivy/site/target/history/2.2.0/configuration/macrodef/attribute.html
    ant/ivy/site/target/history/2.2.0/configuration/module.html
    ant/ivy/site/target/history/2.2.0/configuration/modules.html
    ant/ivy/site/target/history/2.2.0/configuration/namespace/
    ant/ivy/site/target/history/2.2.0/configuration/namespace.html
    ant/ivy/site/target/history/2.2.0/configuration/namespace/dest.html
    ant/ivy/site/target/history/2.2.0/configuration/namespace/fromtosystem.html
    ant/ivy/site/target/history/2.2.0/configuration/namespace/rule.html
    ant/ivy/site/target/history/2.2.0/configuration/namespace/src.html
    ant/ivy/site/target/history/2.2.0/configuration/namespaces.html
    ant/ivy/site/target/history/2.2.0/configuration/outputters.html
    ant/ivy/site/target/history/2.2.0/configuration/parsers.html
    ant/ivy/site/target/history/2.2.0/configuration/properties.html
    ant/ivy/site/target/history/2.2.0/configuration/property.html
    ant/ivy/site/target/history/2.2.0/configuration/resolvers.html
    ant/ivy/site/target/history/2.2.0/configuration/status.html
    ant/ivy/site/target/history/2.2.0/configuration/statuses.html
    ant/ivy/site/target/history/2.2.0/configuration/triggers.html
    ant/ivy/site/target/history/2.2.0/configuration/typedef.html
    ant/ivy/site/target/history/2.2.0/configuration/version-matchers.html
    ant/ivy/site/target/history/2.2.0/dev/
    ant/ivy/site/target/history/2.2.0/dev.html
    ant/ivy/site/target/history/2.2.0/dev/makerelease.html
    ant/ivy/site/target/history/2.2.0/dev/updatesite.html
    ant/ivy/site/target/history/2.2.0/extend.html
    ant/ivy/site/target/history/2.2.0/images/
    ant/ivy/site/target/history/2.2.0/images/ant-group-logo.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/apache-incubator-logo.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/bullet.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/closed.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/discovery.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/downloaded.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/error.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/evicted.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/grippie.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/hibgraph-small.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/hibgraph.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-book.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-demo.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-dl-1.4.1.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-dl-2.0.0-alpha-1.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-dl.xcf   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-forum.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-lierre.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-publish-fc.odg   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-publish-fc.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-terminology.odg   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivy-terminology.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/ivyfile-small.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/logo.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/main-tasks.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/open.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/report-small.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/searched.gif   (with props)
    ant/ivy/site/target/history/2.2.0/images/xooki-edit-small.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/xooki-edit.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/xooki-toolbar.png   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step1.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step2.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step3-2.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step3.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step4.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step5.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step6.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/images/yed-step7.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/index.html
    ant/ivy/site/target/history/2.2.0/install.html
    ant/ivy/site/target/history/2.2.0/ivyfile/
    ant/ivy/site/target/history/2.2.0/ivyfile.html
    ant/ivy/site/target/history/2.2.0/ivyfile/artifact-conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/artifact-exclude-conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/artifact-exclude.html
    ant/ivy/site/target/history/2.2.0/ivyfile/artifact.html
    ant/ivy/site/target/history/2.2.0/ivyfile/conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/configurations.html
    ant/ivy/site/target/history/2.2.0/ivyfile/conflict.html
    ant/ivy/site/target/history/2.2.0/ivyfile/conflicts.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependencies.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency-artifact-conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency-artifact.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency-conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency-include-conf.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency-include.html
    ant/ivy/site/target/history/2.2.0/ivyfile/dependency.html
    ant/ivy/site/target/history/2.2.0/ivyfile/description.html
    ant/ivy/site/target/history/2.2.0/ivyfile/exclude.html
    ant/ivy/site/target/history/2.2.0/ivyfile/extends.html
    ant/ivy/site/target/history/2.2.0/ivyfile/include.html
    ant/ivy/site/target/history/2.2.0/ivyfile/info.html
    ant/ivy/site/target/history/2.2.0/ivyfile/ivyauthor.html
    ant/ivy/site/target/history/2.2.0/ivyfile/license.html
    ant/ivy/site/target/history/2.2.0/ivyfile/manager.html
    ant/ivy/site/target/history/2.2.0/ivyfile/mapped.html
    ant/ivy/site/target/history/2.2.0/ivyfile/override.html
    ant/ivy/site/target/history/2.2.0/ivyfile/publications.html
    ant/ivy/site/target/history/2.2.0/ivyfile/repository.html
    ant/ivy/site/target/history/2.2.0/js/
    ant/ivy/site/target/history/2.2.0/js/jquery.pack.js
    ant/ivy/site/target/history/2.2.0/js/jquery.treeview.js
    ant/ivy/site/target/history/2.2.0/moreexamples.html
    ant/ivy/site/target/history/2.2.0/principle.html
    ant/ivy/site/target/history/2.2.0/reference.html
    ant/ivy/site/target/history/2.2.0/release-notes.html
    ant/ivy/site/target/history/2.2.0/resolver/
    ant/ivy/site/target/history/2.2.0/resolver/chain.html
    ant/ivy/site/target/history/2.2.0/resolver/dual.html
    ant/ivy/site/target/history/2.2.0/resolver/filesystem.html
    ant/ivy/site/target/history/2.2.0/resolver/ibiblio.html
    ant/ivy/site/target/history/2.2.0/resolver/ivyrep.html
    ant/ivy/site/target/history/2.2.0/resolver/packager.html
    ant/ivy/site/target/history/2.2.0/resolver/sftp.html
    ant/ivy/site/target/history/2.2.0/resolver/ssh.html
    ant/ivy/site/target/history/2.2.0/resolver/url.html
    ant/ivy/site/target/history/2.2.0/resolver/vfs.html
    ant/ivy/site/target/history/2.2.0/samples/
    ant/ivy/site/target/history/2.2.0/samples/apache-hello-ivy-default.html
    ant/ivy/site/target/history/2.2.0/samples/build-install.xml
    ant/ivy/site/target/history/2.2.0/samples/build.xml
    ant/ivy/site/target/history/2.2.0/samples/commons-lang1.0-dep-report-part.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/samples/hibernate3.0-dep-report-part.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/samples/ivy-doc.xsl
    ant/ivy/site/target/history/2.2.0/samples/ivy-report.css
    ant/ivy/site/target/history/2.2.0/samples/ivy-sample-xslt.xml
    ant/ivy/site/target/history/2.2.0/samples/ivy-sample.xml
    ant/ivy/site/target/history/2.2.0/samples/ivy-style.css
    ant/ivy/site/target/history/2.2.0/samples/ivysettings-default.xml
    ant/ivy/site/target/history/2.2.0/samples/jayasoft-ivyrep-example-default.html
    ant/ivy/site/target/history/2.2.0/samples/jayasoft-ivyrep-example-default.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/samples/projects-dependencies-graph-small.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/samples/projects-dependencies-graph.jpg   (with props)
    ant/ivy/site/target/history/2.2.0/settings/
    ant/ivy/site/target/history/2.2.0/settings.html
    ant/ivy/site/target/history/2.2.0/settings/caches/
    ant/ivy/site/target/history/2.2.0/settings/caches.html
    ant/ivy/site/target/history/2.2.0/settings/caches/cache.html
    ant/ivy/site/target/history/2.2.0/settings/caches/ttl.html
    ant/ivy/site/target/history/2.2.0/settings/classpath.html
    ant/ivy/site/target/history/2.2.0/settings/conflict-managers.html
    ant/ivy/site/target/history/2.2.0/settings/credentials.html
    ant/ivy/site/target/history/2.2.0/settings/include.html
    ant/ivy/site/target/history/2.2.0/settings/latest-strategies.html
    ant/ivy/site/target/history/2.2.0/settings/lock-strategies.html
    ant/ivy/site/target/history/2.2.0/settings/macrodef/
    ant/ivy/site/target/history/2.2.0/settings/macrodef.html
    ant/ivy/site/target/history/2.2.0/settings/macrodef/attribute.html
    ant/ivy/site/target/history/2.2.0/settings/module.html
    ant/ivy/site/target/history/2.2.0/settings/modules.html
    ant/ivy/site/target/history/2.2.0/settings/namespace/
    ant/ivy/site/target/history/2.2.0/settings/namespace.html
    ant/ivy/site/target/history/2.2.0/settings/namespace/dest.html
    ant/ivy/site/target/history/2.2.0/settings/namespace/fromtosystem.html
    ant/ivy/site/target/history/2.2.0/settings/namespace/rule.html
    ant/ivy/site/target/history/2.2.0/settings/namespace/src.html
    ant/ivy/site/target/history/2.2.0/settings/namespaces.html
    ant/ivy/site/target/history/2.2.0/settings/outputters.html
    ant/ivy/site/target/history/2.2.0/settings/parsers.html
    ant/ivy/site/target/history/2.2.0/settings/properties.html
    ant/ivy/site/target/history/2.2.0/settings/property.html
    ant/ivy/site/target/history/2.2.0/settings/resolvers.html
    ant/ivy/site/target/history/2.2.0/settings/settings.html
    ant/ivy/site/target/history/2.2.0/settings/signers.html
    ant/ivy/site/target/history/2.2.0/settings/status.html
    ant/ivy/site/target/history/2.2.0/settings/statuses.html
    ant/ivy/site/target/history/2.2.0/settings/triggers.html
    ant/ivy/site/target/history/2.2.0/settings/typedef.html
    ant/ivy/site/target/history/2.2.0/settings/version-matchers.html
    ant/ivy/site/target/history/2.2.0/standalone.html
    ant/ivy/site/target/history/2.2.0/style/
    ant/ivy/site/target/history/2.2.0/style/ant.css
    ant/ivy/site/target/history/2.2.0/style/color.css
    ant/ivy/site/target/history/2.2.0/style/ivy-ref.css
    ant/ivy/site/target/history/2.2.0/style/nav.css
    ant/ivy/site/target/history/2.2.0/style/print-style.css
    ant/ivy/site/target/history/2.2.0/style/shell.css
    ant/ivy/site/target/history/2.2.0/style/style.css
    ant/ivy/site/target/history/2.2.0/style/tree.css
    ant/ivy/site/target/history/2.2.0/terminology.html
    ant/ivy/site/target/history/2.2.0/textual.html
    ant/ivy/site/target/history/2.2.0/tutorial/
    ant/ivy/site/target/history/2.2.0/tutorial.html
    ant/ivy/site/target/history/2.2.0/tutorial/build-repository/
    ant/ivy/site/target/history/2.2.0/tutorial/build-repository.html
    ant/ivy/site/target/history/2.2.0/tutorial/build-repository/advanced.html
    ant/ivy/site/target/history/2.2.0/tutorial/build-repository/basic.html
    ant/ivy/site/target/history/2.2.0/tutorial/conf.html
    ant/ivy/site/target/history/2.2.0/tutorial/defaultconf.html
    ant/ivy/site/target/history/2.2.0/tutorial/dependence.html
    ant/ivy/site/target/history/2.2.0/tutorial/dual.html
    ant/ivy/site/target/history/2.2.0/tutorial/multiple.html
    ant/ivy/site/target/history/2.2.0/tutorial/multiproject.html
    ant/ivy/site/target/history/2.2.0/tutorial/start.html
    ant/ivy/site/target/history/2.2.0/use/
    ant/ivy/site/target/history/2.2.0/use/artifactproperty.html
    ant/ivy/site/target/history/2.2.0/use/artifactreport.html
    ant/ivy/site/target/history/2.2.0/use/buildlist.html
    ant/ivy/site/target/history/2.2.0/use/buildnumber.html
    ant/ivy/site/target/history/2.2.0/use/cachefileset.html
    ant/ivy/site/target/history/2.2.0/use/cachepath.html
    ant/ivy/site/target/history/2.2.0/use/cleancache.html
    ant/ivy/site/target/history/2.2.0/use/configure.html
    ant/ivy/site/target/history/2.2.0/use/deliver.html
    ant/ivy/site/target/history/2.2.0/use/findrevision.html
    ant/ivy/site/target/history/2.2.0/use/info.html
    ant/ivy/site/target/history/2.2.0/use/install.html
    ant/ivy/site/target/history/2.2.0/use/listmodules.html
    ant/ivy/site/target/history/2.2.0/use/makepom.html
    ant/ivy/site/target/history/2.2.0/use/postresolvetask.html
    ant/ivy/site/target/history/2.2.0/use/publish.html
    ant/ivy/site/target/history/2.2.0/use/report.html
    ant/ivy/site/target/history/2.2.0/use/repreport.html
    ant/ivy/site/target/history/2.2.0/use/resolve.html
    ant/ivy/site/target/history/2.2.0/use/retrieve.html
    ant/ivy/site/target/history/2.2.0/use/settings.html
    ant/ivy/site/target/history/2.2.0/use/var.html
    ant/ivy/site/target/history/2.2.0/yed.html

Added: ant/ivy/site/target/history/2.2.0/ant.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/ant.html?rev=1005260&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0/ant.html (added)
+++ ant/ivy/site/target/history/2.2.0/ant.html Wed Oct  6 21:25:29 2010
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+   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
+
+     http://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.    
+-->
+<html>
+<head>
+	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
+	<script type="text/javascript">var xookiConfig = {level: 0};</script>	
+	
+
+<title>Ant Tasks | Apache Ivy</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <link rel="stylesheet" type="text/css" href="style/style.css" />
+  <script src="js/jquery.pack.js" type="text/javascript"></script>
+  <script src="js/jquery.treeview.js" type="text/javascript"></script>
+  <script type="text/javascript">
+  $(document).ready(function(){$("#treemenu").Treeview({speed: "fast",store: true});});
+  </script>
+
+<script language="javascript" type="text/javascript">xooki = {u: function(url) {return "xooki/"+url;}};</script>
+</head>
+<body>
+
+<div id="body">
+<table id="header" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td id="home" width="30%"><a href="http://ant.apache.org/"
+			title="Apache Ant"><img src="images/ant-group-logo.gif" alt="Apache Ant"
+			border="0" /></a></td>
+
+		<td class="product" width="70%" align="right" valign="middle"><img
+			src="images/logo.png" alt="ivy" border="0" /></td>
+	</tr>
+</table>
+
+<table id="top-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td>
+
+        <div style="float:right;margin: 0 10px;">
+        <!-- Google CSE Search Box Begins -->
+  <form id="searchbox_014292259695392975429:5y6qypnrni8" action="http://ant.apache.org/ivy/search.html">
+    <input type="hidden" name="cx" value="014292259695392975429:5y6qypnrni8" />
+    <input type="hidden" name="cof" value="FORID:11" />
+    <input name="q" type="text" size="30" />
+    <input type="submit" name="sa" value="Search" />
+  </form>
+  <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_014292259695392975429%3A5y6qypnrni8"></script>
+<!-- Google CSE Search Box Ends -->
+        </div>
+
+		<div id="navcontainer">
+		<a href="http://ant.apache.org/">Apache Ant</a> &gt; <a href="http://ant.apache.org/ivy/">Ivy</a> &gt; <a href="http://ant.apache.org/ivy/history.html">History</a> &gt; <span class="breadCrumb"><a href="index.html" >Documentation (2.2.0)</a> &gt; <a href="reference.html" >Reference</a> &gt; <a href="ant.html" class="current">Ant Tasks</a></span>
+		</div>
+		</td>
+	</tr>
+
+</table>
+
+<table id="content" border="0" cellpadding="0" cellspacing="0"
+	width="100%">
+	<tr>
+		<td id="sidebar-left">
+		<div class="block block-book" id="block-book-0">
+		<h2>Ivy</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview"><li id="xooki-index" class="submenu"><a href="index.html" >Documentation (2.2.0)</a><ul class="open"><li id="xooki-release-notes"><a href="release-notes.html" >Release Notes</a></li><li id="xooki-tutorial" class="submenu"><a href="tutorial.html" >Tutorials</a><ul class="closed"><li id="xooki-tutorial/start"><a href="tutorial/start.html" >Quick Start</a></li><li id="xooki-tutorial/defaultconf"><a href="tutorial/defaultconf.html" >Adjusting default settings</a></li><li id="xooki-tutorial/multiple"><a href="tutorial/multiple.html" >Multiple Resolvers</a></li><li id="xooki-tutorial/dual"><a href="tutorial/dual.html" >Dual Resolver</a></li><li id="xooki-tutorial/dependence"><a href="tutorial/dependence.html" >Project dependencies</a></li><li id="xooki-tutorial/multiproject"><a href="tutorial/multiproject.html" >Using Ivy in multiple projects environment</a></li><li id="xooki-tutorial/conf"><a href="tutorial/conf.html" >Usi
 ng Ivy Module Configurations</a></li><li id="xooki-tutorial/build-repository" class="submenu"><a href="tutorial/build-repository.html" >Building a repository</a><ul class="closed"><li id="xooki-tutorial/build-repository/basic"><a href="tutorial/build-repository/basic.html" >Basic repository copy</a></li><li id="xooki-tutorial/build-repository/advanced"><a href="tutorial/build-repository/advanced.html" >Using namespaces</a></li></ul></li><li id="xooki-moreexamples"><a href="moreexamples.html" >More examples</a></li></ul></li><li id="xooki-reference" class="submenu"><a href="reference.html" >Reference</a><ul class="open"><li id="xooki-intro" class="submenu">Introduction<ul class="closed"><li id="xooki-terminology"><a href="terminology.html" >Terminology</a></li><li id="xooki-concept"><a href="concept.html" >Main Concepts</a></li><li id="xooki-textual"><a href="textual.html" >Text Conventions</a></li><li id="xooki-principle"><a href="principle.html" >How does it work ?</a></li>
 <li id="xooki-bestpractices"><a href="bestpractices.html" >Best practices</a></li><li id="xooki-install"><a href="install.html" >Installation</a></li></ul></li><li id="xooki-settings" class="submenu"><a href="settings.html" >Settings Files</a><ul class="closed"><li id="xooki-settings/property"><a href="settings/property.html" >property</a></li><li id="xooki-settings/properties"><a href="settings/properties.html" >properties</a></li><li id="xooki-settings/settings"><a href="settings/settings.html" >settings</a></li><li id="xooki-settings/include"><a href="settings/include.html" >include</a></li><li id="xooki-settings/classpath"><a href="settings/classpath.html" >classpath</a></li><li id="xooki-settings/typedef"><a href="settings/typedef.html" >typedef</a></li><li id="xooki-settings/credentials"><a href="settings/credentials.html" >credentials</a></li><li id="xooki-settings/signers"><a href="settings/signers.html" >signers</a></li><li id="xooki-settings/lock-strategies"><a hre
 f="settings/lock-strategies.html" >lock-strategies</a></li><li id="xooki-settings/caches" class="submenu"><a href="settings/caches.html" >caches</a><ul class="closed"><li id="xooki-settings/caches/cache" class="submenu"><a href="settings/caches/cache.html" >cache</a><ul class="closed"><li id="xooki-settings/caches/ttl"><a href="settings/caches/ttl.html" >ttl</a></li></ul></li></ul></li><li id="xooki-settings/latest-strategies"><a href="settings/latest-strategies.html" >latest-strategies</a></li><li id="xooki-settings/parsers"><a href="settings/parsers.html" >parsers</a></li><li id="xooki-settings/namespaces" class="submenu"><a href="settings/namespaces.html" >namespaces</a><ul class="closed"><li id="xooki-settings/namespace" class="submenu"><a href="settings/namespace.html" >namespace</a><ul class="closed"><li id="xooki-settings/namespace/rule" class="submenu"><a href="settings/namespace/rule.html" >rule</a><ul class="closed"><li id="xooki-settings/namespace/fromtosystem" cl
 ass="submenu"><a href="settings/namespace/fromtosystem.html" >fromsystem / tosystem</a><ul class="closed"><li id="xooki-settings/namespace/src"><a href="settings/namespace/src.html" >src</a></li><li id="xooki-settings/namespace/dest"><a href="settings/namespace/dest.html" >dest</a></li></ul></li></ul></li></ul></li></ul></li><li id="xooki-settings/macrodef" class="submenu"><a href="settings/macrodef.html" >macrodef</a><ul class="closed"><li id="xooki-settings/macrodef/attribute"><a href="settings/macrodef/attribute.html" >attribute</a></li></ul></li><li id="xooki-settings/resolvers" class="submenu"><a href="settings/resolvers.html" >resolvers</a><ul class="closed"><li id="xooki-resolver/ivyrep"><a href="resolver/ivyrep.html" >IvyRep Resolver</a></li><li id="xooki-resolver/ibiblio"><a href="resolver/ibiblio.html" >IBiblio Resolver</a></li><li id="xooki-resolver/packager"><a href="resolver/packager.html" >Packager resolver</a></li><li id="xooki-resolver/filesystem"><a href="re
 solver/filesystem.html" >File System resolver</a></li><li id="xooki-resolver/url"><a href="resolver/url.html" >Url Resolver</a></li><li id="xooki-resolver/chain"><a href="resolver/chain.html" >Chain Resolver</a></li><li id="xooki-resolver/dual"><a href="resolver/dual.html" >Dual resolver</a></li><li id="xooki-resolver/sftp"><a href="resolver/sftp.html" >sftp resolver</a></li><li id="xooki-resolver/ssh"><a href="resolver/ssh.html" >ssh resolver</a></li><li id="xooki-resolver/vfs"><a href="resolver/vfs.html" >vfs</a></li></ul></li><li id="xooki-settings/conflict-managers"><a href="settings/conflict-managers.html" >conflict-managers</a></li><li id="xooki-settings/modules" class="submenu"><a href="settings/modules.html" >modules</a><ul class="closed"><li id="xooki-settings/module"><a href="settings/module.html" >module</a></li></ul></li><li id="xooki-settings/outputters"><a href="settings/outputters.html" >outputters</a></li><li id="xooki-settings/statuses" class="submenu"><a hr
 ef="settings/statuses.html" >statuses</a><ul class="closed"><li id="xooki-settings/status"><a href="settings/status.html" >status</a></li></ul></li><li id="xooki-settings/triggers"><a href="settings/triggers.html" >triggers</a></li><li id="xooki-settings/version-matchers"><a href="settings/version-matchers.html" >version-matchers</a></li></ul></li><li id="xooki-ivyfile" class="submenu"><a href="ivyfile.html" >Ivy Files</a><ul class="closed"><li id="xooki-ivyfile/info" class="submenu"><a href="ivyfile/info.html" >info</a><ul class="closed"><li id="xooki-ivyfile/extends"><a href="ivyfile/extends.html" >extends</a></li><li id="xooki-ivyfile/license"><a href="ivyfile/license.html" >license</a></li><li id="xooki-ivyfile/ivyauthor"><a href="ivyfile/ivyauthor.html" >ivyauthor</a></li><li id="xooki-ivyfile/repository"><a href="ivyfile/repository.html" >repository</a></li><li id="xooki-ivyfile/description"><a href="ivyfile/description.html" >description</a></li></ul></li><li id="xook
 i-ivyfile/configurations" class="submenu"><a href="ivyfile/configurations.html" >configurations</a><ul class="closed"><li id="xooki-ivyfile/conf"><a href="ivyfile/conf.html" >conf</a></li><li id="xooki-ivyfile/include"><a href="ivyfile/include.html" >include</a></li></ul></li><li id="xooki-ivyfile/publications" class="submenu"><a href="ivyfile/publications.html" >publications</a><ul class="closed"><li id="xooki-ivyfile/artifact" class="submenu"><a href="ivyfile/artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/artifact-conf"><a href="ivyfile/artifact-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/dependencies" class="submenu"><a href="ivyfile/dependencies.html" >dependencies</a><ul class="closed"><li id="xooki-ivyfile/dependency" class="submenu"><a href="ivyfile/dependency.html" >dependency</a><ul class="closed"><li id="xooki-ivyfile/dependency-conf" class="submenu"><a href="ivyfile/dependency-conf.html" >conf</a><ul class="closed"><li 
 id="xooki-ivyfile/mapped"><a href="ivyfile/mapped.html" >mapped</a></li></ul></li><li id="xooki-ivyfile/dependency-artifact" class="submenu"><a href="ivyfile/dependency-artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/dependency-artifact-conf"><a href="ivyfile/dependency-artifact-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/artifact-exclude" class="submenu"><a href="ivyfile/artifact-exclude.html" >exclude</a><ul class="closed"><li id="xooki-ivyfile/artifact-exclude-conf"><a href="ivyfile/artifact-exclude-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/dependency-include" class="submenu"><a href="ivyfile/dependency-include.html" >include</a><ul class="closed"><li id="xooki-ivyfile/dependency-include-conf"><a href="ivyfile/dependency-include-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/exclude"><a href="ivyfile/exclude.html" >exclude</a></li><li id="xooki-ivyfile/override"><a href="ivyfile/override.html" >override<
 /a></li><li id="xooki-ivyfile/conflict"><a href="ivyfile/conflict.html" >conflict</a></li></ul></li><li id="xooki-ivyfile/conflicts" class="submenu"><a href="ivyfile/conflicts.html" >conflicts</a><ul class="closed"><li id="xooki-ivyfile/manager"><a href="ivyfile/manager.html" >manager</a></li></ul></li></ul></li><li id="xooki-ant" class="submenu"><a href="ant.html" class="current">Ant Tasks</a><ul class="open"><li id="xooki-use/artifactproperty"><a href="use/artifactproperty.html" >artifactproperty</a></li><li id="xooki-use/artifactreport"><a href="use/artifactreport.html" >artifactreport</a></li><li id="xooki-use/buildlist"><a href="use/buildlist.html" >buildlist</a></li><li id="xooki-use/buildnumber"><a href="use/buildnumber.html" >buildnumber</a></li><li id="xooki-use/cachefileset"><a href="use/cachefileset.html" >cachefileset</a></li><li id="xooki-use/cachepath"><a href="use/cachepath.html" >cachepath</a></li><li id="xooki-use/cleancache"><a href="use/cleancache.html" >c
 leancache</a></li><li id="xooki-use/configure"><a href="use/configure.html" >configure</a></li><li id="xooki-use/deliver"><a href="use/deliver.html" >deliver</a></li><li id="xooki-use/findrevision"><a href="use/findrevision.html" >findrevision</a></li><li id="xooki-use/info"><a href="use/info.html" >info</a></li><li id="xooki-use/install"><a href="use/install.html" >install</a></li><li id="xooki-use/listmodules"><a href="use/listmodules.html" >listmodules</a></li><li id="xooki-use/makepom"><a href="use/makepom.html" >makepom</a></li><li id="xooki-use/postresolvetask"><a href="use/postresolvetask.html" >post resolve tasks</a></li><li id="xooki-use/publish"><a href="use/publish.html" >publish</a></li><li id="xooki-use/repreport"><a href="use/repreport.html" >repreport</a></li><li id="xooki-use/resolve"><a href="use/resolve.html" >resolve</a></li><li id="xooki-use/retrieve"><a href="use/retrieve.html" >retrieve</a></li><li id="xooki-use/report" class="submenu"><a href="use/repo
 rt.html" >report</a><ul class="closed"><li id="xooki-yed"><a href="yed.html" >Using yEd to layout report graphs</a></li></ul></li><li id="xooki-use/settings"><a href="use/settings.html" >settings</a></li><li id="xooki-use/var"><a href="use/var.html" >var</a></li></ul></li><li id="xooki-standalone"><a href="standalone.html" >Using standalone</a></li></ul></li><li id="xooki-dev" class="submenu"><a href="dev.html" >Developer doc</a><ul class="closed"><li id="xooki-extend"><a href="extend.html" >Extending Ivy</a></li><li id="xooki-dev/makerelease"><a href="dev/makerelease.html" >Making a release</a></li><li id="xooki-dev/updatesite"><a href="dev/updatesite.html" >Updating the updatesite</a></li></ul></li></ul></li></ul></div>
+
+		<center><iframe src="http://www.apache.org/ads/buttonbar.html"
+                         style="border-width:0;" frameborder="0" scrolling="no"
+                         width="135" height="265"></iframe>
+                </center>
+                
+		</div>
+
+		</td>
+		
+		<td valign="top">
+		<div id="main">
+
+		<h1 class="title">Ant Tasks</h1>
+            <br class="xooki-br"/>The main and most frequent way to use ivy is from an ant build file. However, ivy can also be called as a standalone application<br class="xooki-br"/><br class="xooki-br"/>If you use ant version <b>1.6.0</b> or superior, you just have to add ivy namespace to your project (<pre>xmlns:ivy="antlib:org.apache.ivy.ant"</pre> attribute of your project tag), and you can call ivy tasks.<br class="xooki-br"/><br class="xooki-br"/>If you want to make your build handle ivy.jar in either ant lib dir or a local lib dir, you can use a taskdef like this:
+<pre>
+&lt;path id="ivy.lib.path"&gt;<br class="xooki-br"/>    &lt;fileset dir="path/to/dir/with/ivy/jar" includes="*.jar"/&gt;<br class="xooki-br"/>&lt;/path&gt;<br class="xooki-br"/>&lt;taskdef resource="org/apache/ivy/ant/antlib.xml"<br class="xooki-br"/>         uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/&gt;
+</pre>
+Combined with the antlib definition in the project namespace, it will load Ivy classes either from your ant lib or a local directory (path/to/dir/with/ivy/jar in this example).<br class="xooki-br"/><br class="xooki-br"/>If you use ant <b>1.5.1</b> or superior, you have to define the tasks you use in your build file. For instance:
+<pre>
+  &lt;taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/&gt;<br class="xooki-br"/>  &lt;taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/&gt;<br class="xooki-br"/>  &lt;taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/&gt;<br class="xooki-br"/>  &lt;taskdef name="ivy-deliver" classname="org.apache.ivy.ant.IvyDeliver"/&gt; <br class="xooki-br"/>  &lt;taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/&gt;
+</pre>
+<em>Note: the tasks listed above are non exhaustive. For a complete list of tasks with the corresponding classes, see the <a href="https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/java/org/apache/ivy/ant/antlib.xml">antlib.xml</a> file in svn or the version you use.</em><br class="xooki-br"/><br class="xooki-br"/>Then you can use the tasks, but check their name, following samples assume you use the ivy namespace (ivy:xxx tasks), whereas with ant 1.5 you cannot use namespace, and should therefore use ivy-xxx tasks if you have followed the taskdefs above.<br class="xooki-br"/><br class="xooki-br"/>If you use an ant version lower than 1.5.1, you can not use the ivy tasks... you should then call ivy as any external program.<br class="xooki-br"/><h1>Calling ivy from ant: first steps</h1>
+Once your build file is ok to call ivy tasks, the simplest way to use ivy is to call the ivy retrieve task with no parameters:
+<pre>
+&lt;ivy:retrieve /&gt;
+</pre>
+This calls ivy with default values, which might be ok in several projects. In fact, it is equivalent to:
+<pre>
+&lt;target name="resolve"&gt;<br class="xooki-br"/>    &lt;ivy:configure /&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;ivy:resolve file="${ivy.dep.file}" conf="${ivy.configurations}" /&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;ivy:retrieve pattern="${ivy.retrieve.pattern}" conf="${ivy.configurations}" /&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+
+Those 3 tasks follow the 3 main steps of the ivy retrieving dependencies process:
+<ul>
+<li>First the configure task tells it how it can find dependencies giving it a path to an <a href="settings.html">xml settings file</a>.</li> 
+<li>Then the resolve task actually resolves dependencies described by an <a href="ivyfile.html">ivy file</a>, and puts those dependencies in the ivy cache (a directory configured in the settings file).</li>
+<li>Finally the retrieve task copies dependencies from the cache to anywhere you want in your file system. You can then use those dependencies to make your classpath with standard ant paths.</li>
+</ul>
+
+To understand more accurately the behaviour of ivy tasks, one should know that a property file is loaded in ant by ivy at the beginning of the configure call. This property file contains the following properties:
+<pre>
+ivy.project.dir = ${basedir}<br class="xooki-br"/>ivy.lib.dir = ${ivy.project.dir}/lib<br class="xooki-br"/>ivy.build.artifacts.dir = ${ivy.project.dir}/build/artifacts<br class="xooki-br"/>ivy.distrib.dir = ${ivy.project.dir}/distrib<br class="xooki-br"/>	<br class="xooki-br"/>ivy.resolver.default.check.modified = false<br class="xooki-br"/>ivy.default.always.check.exact.revision = true<br class="xooki-br"/><br class="xooki-br"/>ivy.configurations = *<br class="xooki-br"/>ivy.resolve.default.type.filter = *<br class="xooki-br"/>ivy.status = integration<br class="xooki-br"/>ivy.dep.file = ivy.xml<br class="xooki-br"/>ivy.settings.file = ivysettings.xml<br class="xooki-br"/>ivy.retrieve.pattern = ${ivy.lib.dir}/[artifact]-[revision].[ext]<br class="xooki-br"/>ivy.deliver.ivy.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]<br class="xooki-br"/>ivy.publish.src.artifacts.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]<br class="xooki-br"/><br cl
 ass="xooki-br"/>ivy.report.output.pattern = [organisation]-[module]-[conf].[ext]<br class="xooki-br"/><br class="xooki-br"/>ivy.buildlist.ivyfilepath = ivy.xml<br class="xooki-br"/><br class="xooki-br"/>ivy.checksums=sha1,md5
+</pre>
+<em>For the latest version of these properties, you can check the <a href="https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties">svn version</a>.</em><br class="xooki-br"/><br class="xooki-br"/><span class="since">since 2.0</span> After calling the first Ivy task, the property ivy.version will be available and contains the version of the used Ivy library. <br class="xooki-br"/><br class="xooki-br"/><h1>Ivy tasks attributes : generalities</h1>
+Some tasks attributes values may be given through different places. The three possible places are :<br class="xooki-br"/><ol>
+<li>task attribute</li>
+<li>ivy instance</li>
+<li>project property</li>
+</ol>
+The places are queried in this order, so anything set in task attribute will overwrite what would have been found in ivy instance, for example.<br class="xooki-br"/><br class="xooki-br"/>The ivy instance considered here is an instance of the class Ivy, which is setup by a call to the configure task, and then reused for other tasks. Because most of the tasks need an ivy instance, they first check if one is available (i.e. configure has been called), and if none is available, then a default configure is called and the resulting ivy instance is used in the remaining tasks (unless another configure is called).<br class="xooki-br"/><br class="xooki-br"/>It isn't generally necessary to understand this, but it can lead to some issues if you forget to call configure before another task and if the configure step was required in your environment.<br class="xooki-br"/><br class="xooki-br"/><h1>Usual cycle of main tasks</h1>
+<center><img src="images/main-tasks.png" /></center>
+<h1>Example</h1>
+Here is a more complete example of build file using ivy:<br class="xooki-br"/>
+<pre>
+&lt;project xmlns:ivy="antlib:org.apache.ivy.ant" name="sample" default="resolve"&gt;<br class="xooki-br"/><br class="xooki-br"/>    &lt;target name="resolve"&gt;<br class="xooki-br"/>        &lt;ivy:configure file="../ivysettings.xml" /&gt;<br class="xooki-br"/>        <br class="xooki-br"/>        &lt;ivy:resolve file="my-ivy.xml" conf="default, myconf" /&gt;<br class="xooki-br"/>        <br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;target name="retrieve-default" depends="resolve"&gt;<br class="xooki-br"/>        &lt;ivy:retrieve pattern="lib/default/[artifact]-[revision].[ext]" conf="default" /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/><br class="xooki-br"/>    &lt;target name="retrieve-myconf" depends="resolve"&gt;<br class="xooki-br"/>        &lt;ivy:retrieve pattern="lib/myconf/[artifact]-[revision].[ext]" conf="myconf" /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/><br clas
 s="xooki-br"/>    &lt;target name="retrieve-all" depends="resolve"&gt;<br class="xooki-br"/>        &lt;ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]" conf="*" /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/><br class="xooki-br"/>    &lt;target name="deliver" depends="retrieve-all"&gt;<br class="xooki-br"/>        &lt;ivy:deliver deliverpattern="distrib/[artifact]-[revision].[ext]"<br class="xooki-br"/>                     pubrevision="1.1b4" pubdate="20050115123254" status="milestone" /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/><br class="xooki-br"/>    &lt;target name="publish" depends="deliver"&gt;<br class="xooki-br"/>        &lt;ivy:publish resolver="internal" <br class="xooki-br"/>                     artifactspattern="distrib/[artifact]-[revision].[ext]" <br class="xooki-br"/>                     pubrevision="1.1b4" /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/>&lt;/project&gt;
+</pre>
+
+All ivy tasks are documented in the following pages.<br class="xooki-br"/><br class="xooki-br"/>	
+ 		</div><!-- main -->
+		</td>
+	</tr>
+</table>
+
+<table id="footer-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td align="center" valign="middle">
+		<div class="primary-links">:: 
+			<a href="index.html">Home</a> ::
+			<a href="download.html">Download</a> ::
+			<a href="history/latest-milestone/index.html">Documentation</a> ::
+			<a href="get-involved.html">Get Involved</a> ::
+			<a href="search.html">Search</a> ::
+		</div>
+		</td>
+	</tr>
+</table>
+
+
+
+<div id="footer-message"></div>
+
+
+</div><!-- body -->
+</body>
+</html>

Added: ant/ivy/site/target/history/2.2.0/bestpractices.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/bestpractices.html?rev=1005260&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0/bestpractices.html (added)
+++ ant/ivy/site/target/history/2.2.0/bestpractices.html Wed Oct  6 21:25:29 2010
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+   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
+
+     http://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.    
+-->
+<html>
+<head>
+	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
+	<script type="text/javascript">var xookiConfig = {level: 0};</script>	
+	
+
+<title>Best practices | Apache Ivy</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <link rel="stylesheet" type="text/css" href="style/style.css" />
+  <script src="js/jquery.pack.js" type="text/javascript"></script>
+  <script src="js/jquery.treeview.js" type="text/javascript"></script>
+  <script type="text/javascript">
+  $(document).ready(function(){$("#treemenu").Treeview({speed: "fast",store: true});});
+  </script>
+
+<script language="javascript" type="text/javascript">xooki = {u: function(url) {return "xooki/"+url;}};</script>
+</head>
+<body>
+
+<div id="body">
+<table id="header" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td id="home" width="30%"><a href="http://ant.apache.org/"
+			title="Apache Ant"><img src="images/ant-group-logo.gif" alt="Apache Ant"
+			border="0" /></a></td>
+
+		<td class="product" width="70%" align="right" valign="middle"><img
+			src="images/logo.png" alt="ivy" border="0" /></td>
+	</tr>
+</table>
+
+<table id="top-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td>
+
+        <div style="float:right;margin: 0 10px;">
+        <!-- Google CSE Search Box Begins -->
+  <form id="searchbox_014292259695392975429:5y6qypnrni8" action="http://ant.apache.org/ivy/search.html">
+    <input type="hidden" name="cx" value="014292259695392975429:5y6qypnrni8" />
+    <input type="hidden" name="cof" value="FORID:11" />
+    <input name="q" type="text" size="30" />
+    <input type="submit" name="sa" value="Search" />
+  </form>
+  <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_014292259695392975429%3A5y6qypnrni8"></script>
+<!-- Google CSE Search Box Ends -->
+        </div>
+
+		<div id="navcontainer">
+		<a href="http://ant.apache.org/">Apache Ant</a> &gt; <a href="http://ant.apache.org/ivy/">Ivy</a> &gt; <a href="http://ant.apache.org/ivy/history.html">History</a> &gt; <span class="breadCrumb"><a href="index.html" >Documentation (2.2.0)</a> &gt; <a href="reference.html" >Reference</a> &gt; Introduction &gt; <a href="bestpractices.html" class="current">Best practices</a></span>
+		</div>
+		</td>
+	</tr>
+
+</table>
+
+<table id="content" border="0" cellpadding="0" cellspacing="0"
+	width="100%">
+	<tr>
+		<td id="sidebar-left">
+		<div class="block block-book" id="block-book-0">
+		<h2>Ivy</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview"><li id="xooki-index" class="submenu"><a href="index.html" >Documentation (2.2.0)</a><ul class="open"><li id="xooki-release-notes"><a href="release-notes.html" >Release Notes</a></li><li id="xooki-tutorial" class="submenu"><a href="tutorial.html" >Tutorials</a><ul class="closed"><li id="xooki-tutorial/start"><a href="tutorial/start.html" >Quick Start</a></li><li id="xooki-tutorial/defaultconf"><a href="tutorial/defaultconf.html" >Adjusting default settings</a></li><li id="xooki-tutorial/multiple"><a href="tutorial/multiple.html" >Multiple Resolvers</a></li><li id="xooki-tutorial/dual"><a href="tutorial/dual.html" >Dual Resolver</a></li><li id="xooki-tutorial/dependence"><a href="tutorial/dependence.html" >Project dependencies</a></li><li id="xooki-tutorial/multiproject"><a href="tutorial/multiproject.html" >Using Ivy in multiple projects environment</a></li><li id="xooki-tutorial/conf"><a href="tutorial/conf.html" >Usi
 ng Ivy Module Configurations</a></li><li id="xooki-tutorial/build-repository" class="submenu"><a href="tutorial/build-repository.html" >Building a repository</a><ul class="closed"><li id="xooki-tutorial/build-repository/basic"><a href="tutorial/build-repository/basic.html" >Basic repository copy</a></li><li id="xooki-tutorial/build-repository/advanced"><a href="tutorial/build-repository/advanced.html" >Using namespaces</a></li></ul></li><li id="xooki-moreexamples"><a href="moreexamples.html" >More examples</a></li></ul></li><li id="xooki-reference" class="submenu"><a href="reference.html" >Reference</a><ul class="open"><li id="xooki-intro" class="submenu">Introduction<ul class="open"><li id="xooki-terminology"><a href="terminology.html" >Terminology</a></li><li id="xooki-concept"><a href="concept.html" >Main Concepts</a></li><li id="xooki-textual"><a href="textual.html" >Text Conventions</a></li><li id="xooki-principle"><a href="principle.html" >How does it work ?</a></li><l
 i id="xooki-bestpractices"><a href="bestpractices.html" class="current">Best practices</a></li><li id="xooki-install"><a href="install.html" >Installation</a></li></ul></li><li id="xooki-settings" class="submenu"><a href="settings.html" >Settings Files</a><ul class="closed"><li id="xooki-settings/property"><a href="settings/property.html" >property</a></li><li id="xooki-settings/properties"><a href="settings/properties.html" >properties</a></li><li id="xooki-settings/settings"><a href="settings/settings.html" >settings</a></li><li id="xooki-settings/include"><a href="settings/include.html" >include</a></li><li id="xooki-settings/classpath"><a href="settings/classpath.html" >classpath</a></li><li id="xooki-settings/typedef"><a href="settings/typedef.html" >typedef</a></li><li id="xooki-settings/credentials"><a href="settings/credentials.html" >credentials</a></li><li id="xooki-settings/signers"><a href="settings/signers.html" >signers</a></li><li id="xooki-settings/lock-strat
 egies"><a href="settings/lock-strategies.html" >lock-strategies</a></li><li id="xooki-settings/caches" class="submenu"><a href="settings/caches.html" >caches</a><ul class="closed"><li id="xooki-settings/caches/cache" class="submenu"><a href="settings/caches/cache.html" >cache</a><ul class="closed"><li id="xooki-settings/caches/ttl"><a href="settings/caches/ttl.html" >ttl</a></li></ul></li></ul></li><li id="xooki-settings/latest-strategies"><a href="settings/latest-strategies.html" >latest-strategies</a></li><li id="xooki-settings/parsers"><a href="settings/parsers.html" >parsers</a></li><li id="xooki-settings/namespaces" class="submenu"><a href="settings/namespaces.html" >namespaces</a><ul class="closed"><li id="xooki-settings/namespace" class="submenu"><a href="settings/namespace.html" >namespace</a><ul class="closed"><li id="xooki-settings/namespace/rule" class="submenu"><a href="settings/namespace/rule.html" >rule</a><ul class="closed"><li id="xooki-settings/namespace/fro
 mtosystem" class="submenu"><a href="settings/namespace/fromtosystem.html" >fromsystem / tosystem</a><ul class="closed"><li id="xooki-settings/namespace/src"><a href="settings/namespace/src.html" >src</a></li><li id="xooki-settings/namespace/dest"><a href="settings/namespace/dest.html" >dest</a></li></ul></li></ul></li></ul></li></ul></li><li id="xooki-settings/macrodef" class="submenu"><a href="settings/macrodef.html" >macrodef</a><ul class="closed"><li id="xooki-settings/macrodef/attribute"><a href="settings/macrodef/attribute.html" >attribute</a></li></ul></li><li id="xooki-settings/resolvers" class="submenu"><a href="settings/resolvers.html" >resolvers</a><ul class="closed"><li id="xooki-resolver/ivyrep"><a href="resolver/ivyrep.html" >IvyRep Resolver</a></li><li id="xooki-resolver/ibiblio"><a href="resolver/ibiblio.html" >IBiblio Resolver</a></li><li id="xooki-resolver/packager"><a href="resolver/packager.html" >Packager resolver</a></li><li id="xooki-resolver/filesystem
 "><a href="resolver/filesystem.html" >File System resolver</a></li><li id="xooki-resolver/url"><a href="resolver/url.html" >Url Resolver</a></li><li id="xooki-resolver/chain"><a href="resolver/chain.html" >Chain Resolver</a></li><li id="xooki-resolver/dual"><a href="resolver/dual.html" >Dual resolver</a></li><li id="xooki-resolver/sftp"><a href="resolver/sftp.html" >sftp resolver</a></li><li id="xooki-resolver/ssh"><a href="resolver/ssh.html" >ssh resolver</a></li><li id="xooki-resolver/vfs"><a href="resolver/vfs.html" >vfs</a></li></ul></li><li id="xooki-settings/conflict-managers"><a href="settings/conflict-managers.html" >conflict-managers</a></li><li id="xooki-settings/modules" class="submenu"><a href="settings/modules.html" >modules</a><ul class="closed"><li id="xooki-settings/module"><a href="settings/module.html" >module</a></li></ul></li><li id="xooki-settings/outputters"><a href="settings/outputters.html" >outputters</a></li><li id="xooki-settings/statuses" class="s
 ubmenu"><a href="settings/statuses.html" >statuses</a><ul class="closed"><li id="xooki-settings/status"><a href="settings/status.html" >status</a></li></ul></li><li id="xooki-settings/triggers"><a href="settings/triggers.html" >triggers</a></li><li id="xooki-settings/version-matchers"><a href="settings/version-matchers.html" >version-matchers</a></li></ul></li><li id="xooki-ivyfile" class="submenu"><a href="ivyfile.html" >Ivy Files</a><ul class="closed"><li id="xooki-ivyfile/info" class="submenu"><a href="ivyfile/info.html" >info</a><ul class="closed"><li id="xooki-ivyfile/extends"><a href="ivyfile/extends.html" >extends</a></li><li id="xooki-ivyfile/license"><a href="ivyfile/license.html" >license</a></li><li id="xooki-ivyfile/ivyauthor"><a href="ivyfile/ivyauthor.html" >ivyauthor</a></li><li id="xooki-ivyfile/repository"><a href="ivyfile/repository.html" >repository</a></li><li id="xooki-ivyfile/description"><a href="ivyfile/description.html" >description</a></li></ul></li
 ><li id="xooki-ivyfile/configurations" class="submenu"><a href="ivyfile/configurations.html" >configurations</a><ul class="closed"><li id="xooki-ivyfile/conf"><a href="ivyfile/conf.html" >conf</a></li><li id="xooki-ivyfile/include"><a href="ivyfile/include.html" >include</a></li></ul></li><li id="xooki-ivyfile/publications" class="submenu"><a href="ivyfile/publications.html" >publications</a><ul class="closed"><li id="xooki-ivyfile/artifact" class="submenu"><a href="ivyfile/artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/artifact-conf"><a href="ivyfile/artifact-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/dependencies" class="submenu"><a href="ivyfile/dependencies.html" >dependencies</a><ul class="closed"><li id="xooki-ivyfile/dependency" class="submenu"><a href="ivyfile/dependency.html" >dependency</a><ul class="closed"><li id="xooki-ivyfile/dependency-conf" class="submenu"><a href="ivyfile/dependency-conf.html" >conf</a><ul class=
 "closed"><li id="xooki-ivyfile/mapped"><a href="ivyfile/mapped.html" >mapped</a></li></ul></li><li id="xooki-ivyfile/dependency-artifact" class="submenu"><a href="ivyfile/dependency-artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/dependency-artifact-conf"><a href="ivyfile/dependency-artifact-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/artifact-exclude" class="submenu"><a href="ivyfile/artifact-exclude.html" >exclude</a><ul class="closed"><li id="xooki-ivyfile/artifact-exclude-conf"><a href="ivyfile/artifact-exclude-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/dependency-include" class="submenu"><a href="ivyfile/dependency-include.html" >include</a><ul class="closed"><li id="xooki-ivyfile/dependency-include-conf"><a href="ivyfile/dependency-include-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/exclude"><a href="ivyfile/exclude.html" >exclude</a></li><li id="xooki-ivyfile/override"><a href="ivyfile/override.htm
 l" >override</a></li><li id="xooki-ivyfile/conflict"><a href="ivyfile/conflict.html" >conflict</a></li></ul></li><li id="xooki-ivyfile/conflicts" class="submenu"><a href="ivyfile/conflicts.html" >conflicts</a><ul class="closed"><li id="xooki-ivyfile/manager"><a href="ivyfile/manager.html" >manager</a></li></ul></li></ul></li><li id="xooki-ant" class="submenu"><a href="ant.html" >Ant Tasks</a><ul class="closed"><li id="xooki-use/artifactproperty"><a href="use/artifactproperty.html" >artifactproperty</a></li><li id="xooki-use/artifactreport"><a href="use/artifactreport.html" >artifactreport</a></li><li id="xooki-use/buildlist"><a href="use/buildlist.html" >buildlist</a></li><li id="xooki-use/buildnumber"><a href="use/buildnumber.html" >buildnumber</a></li><li id="xooki-use/cachefileset"><a href="use/cachefileset.html" >cachefileset</a></li><li id="xooki-use/cachepath"><a href="use/cachepath.html" >cachepath</a></li><li id="xooki-use/cleancache"><a href="use/cleancache.html" >c
 leancache</a></li><li id="xooki-use/configure"><a href="use/configure.html" >configure</a></li><li id="xooki-use/deliver"><a href="use/deliver.html" >deliver</a></li><li id="xooki-use/findrevision"><a href="use/findrevision.html" >findrevision</a></li><li id="xooki-use/info"><a href="use/info.html" >info</a></li><li id="xooki-use/install"><a href="use/install.html" >install</a></li><li id="xooki-use/listmodules"><a href="use/listmodules.html" >listmodules</a></li><li id="xooki-use/makepom"><a href="use/makepom.html" >makepom</a></li><li id="xooki-use/postresolvetask"><a href="use/postresolvetask.html" >post resolve tasks</a></li><li id="xooki-use/publish"><a href="use/publish.html" >publish</a></li><li id="xooki-use/repreport"><a href="use/repreport.html" >repreport</a></li><li id="xooki-use/resolve"><a href="use/resolve.html" >resolve</a></li><li id="xooki-use/retrieve"><a href="use/retrieve.html" >retrieve</a></li><li id="xooki-use/report" class="submenu"><a href="use/repo
 rt.html" >report</a><ul class="closed"><li id="xooki-yed"><a href="yed.html" >Using yEd to layout report graphs</a></li></ul></li><li id="xooki-use/settings"><a href="use/settings.html" >settings</a></li><li id="xooki-use/var"><a href="use/var.html" >var</a></li></ul></li><li id="xooki-standalone"><a href="standalone.html" >Using standalone</a></li></ul></li><li id="xooki-dev" class="submenu"><a href="dev.html" >Developer doc</a><ul class="closed"><li id="xooki-extend"><a href="extend.html" >Extending Ivy</a></li><li id="xooki-dev/makerelease"><a href="dev/makerelease.html" >Making a release</a></li><li id="xooki-dev/updatesite"><a href="dev/updatesite.html" >Updating the updatesite</a></li></ul></li></ul></li></ul></div>
+
+		<center><iframe src="http://www.apache.org/ads/buttonbar.html"
+                         style="border-width:0;" frameborder="0" scrolling="no"
+                         width="135" height="265"></iframe>
+                </center>
+                
+		</div>
+
+		</td>
+		
+		<td valign="top">
+		<div id="main">
+
+		<h1 class="title">Best practices</h1>
+            <br class="xooki-br"/>Here are some recommendations and best practices we have gathered throughout our experience and consultancies with our customers.<br class="xooki-br"/><br class="xooki-br"/><h1>Add module descriptors for all your modules</h1>
+In Ivy world, module descriptors are ivy files, which are basically simple xml files describing both what the module produces as artifacts and its dependencies.<br class="xooki-br"/><br class="xooki-br"/>It is a good practice to write or download module descriptors for all the modules involved in your development, even for your third party dependencies, and even if they don't provide such module descriptors themselves.<br class="xooki-br"/><br class="xooki-br"/>First, it will seem like extra work and require time. But when you have several modules using the same third party library, then you will only need to add one line to your ivy file to get this library and all its own dependencies that you really need (if you have good module descriptors in your repository, especially with the use of module <a href="concept.html#configurations">configurations</a>). It will also be very helpful when you want to upgrade a dependency. One single change in your module ivy file and you will
  get the updated version with its updated (or not) dependencies.<br class="xooki-br"/><br class="xooki-br"/>Therefore we recommend adding ivy files for all the modules in your repository. You can even enforce this rule by setting the descriptor attribute to required on your <a href="settings/resolvers.html">resolvers</a>. Hence you shouldn't need to use the dependency artifact inclusion/exclusion/specification feature of Ivy, which should only be used in very specific cases.<br class="xooki-br"/><br class="xooki-br"/><h1>Use your own enterprise repository</h1>
+This is usually not a valid recommendation for open source projects, but for the enterprise world we strongly suggest to avoid relying on a public repository like maven ibiblio or ivyrep. Why? Well, there are a couple of reasons:
+<ul>
+<li>control</li> The main problem with these kinds of public repositories is that you don't have control over the repository. This means that if a module descriptor is broken you cannot easily fix it. Sure you can use a chain between a shared repository and the public one and put your fixed module descriptor in the shared repository so that it hides the one on the public repository, but this makes repository browsing and maintenance cumbersome. <br class="xooki-br"/>Even more problematic is the possible updates of the repository. We know that versions published in such repositories should be stable and not be updated, but we also frequently see that a module descriptor is buggy, or an artifact corrupted. We even see sometimes a new version published with the same name as the preceding one because the previous one was simply badly packaged. This can occur even to the best; it occurred to us with Ivy 1.2 :-) But then we decided to publish the new version with a different name,
  1.2a. But if the repository manager allows such updates, this means that what worked before can break. It can thus break your build reproducibility.
+<li>reliability</li> The Maven repository is not particularly well known for its reliability (we often experience major slow downs or even complete failures of the site), and ivyrep is only supported by a small company (yes we are only a small company!). So slow down and site hangs occur also. And if the repository you rely on is down, this can cause major slow downs in your development or release process.
+<li>accuracy</li> A public repository usually contains much more than what you actually need. Is this a problem? We think so. We think that in an enterprise environment the libraries you use should step through some kind of validation process before being used in every projects of your company. And what better way to do so? Setup an enterprise repository with only the libraries you actually want to use. This will not only ensure better quality for your application dependencies, but help to have the same versions everywhere, and even help when declaring your module dependencies, if you use a tool like IvyDE, the code completion will only show relevant information about your repository, with only the libraries you actually want to see.
+<li>security</li> The artifacts you download from a module repository are often executable, and are thus a security concern. Imagine a hacker replacing commons-lang by another version containing a virus? If you rely on a public repository to build your software, you expose it to a security risk. You can read more about that in this <a href="http://www.fortifysoftware.com/servlet/downloads/public/fortify_attacking_the_build.pdf">Forrester article</a>.
+</ul>
+Note that using an enterprise repository doesn't mean you have to build it entirely by hand. Ivy features an <a href="use/install.html">install</a> task which can be used to install modules from one repository to another one, so it can be used to selectively install modules from a public repository to your enterprise repository, where you will then be able to ensure control, reliability and accuracy.<br class="xooki-br"/><br class="xooki-br"/><h1>Always use patterns with at least organisation and module</h1>
+Ivy is very flexible and can accomodate a lot of existing repositories, using the concept of <a href="concept.html#pattern">patterns</a>. But if your repository doesn't exist yet, we strongly recommend always using the organisation and the module name in your pattern, even for a private repository where you put only your own modules (which all have the same organisation). Why? Because the Ivy listing feature relies on the token it can find in the pattern. If you have no organisation token in your pattern, Ivy won't be able to list the (only?) organisation in your repository. And this can be a problem for code completion in IvyDE, for example, but also for repository wide tasks like <a href="use/install.html">install</a> or <a href="use/repreport.html">repreport</a>.<br class="xooki-br"/><br class="xooki-br"/><h1>Public ivysettings.xml with public repositories</h1>
+If you create a public repository, provide a URL to the <a href="settings.html">ivysettings.xml</a> file. It's pretty easy to do, and if someone wants to leverage your repository, he will just have to load it with <a href="use/settings.html">settings</a> with the URL of your ivysettings.xml file, or <a href="configuration/include.html">include</a> it in its own configuration file, which makes it really easy to combine several public repositories.<br class="xooki-br"/><br class="xooki-br"/><h1>Dealing with integration versions</h1>
+Very often, especially when working in a team or with several modules, you will need to rely on intermediate, non-finalized versions of your modules. These versions are what we call integration versions, because their main objective is to be integrated with other modules to make and test an application or a framework. <br class="xooki-br"/><br class="xooki-br"/>If you follow the continuous integration paradigm across modules, these integration versions can be produced by a continuous integration server, very frequently.<br class="xooki-br"/><br class="xooki-br"/>So, how can you deal with these, possibly numerous, integration versions?<br class="xooki-br"/><br class="xooki-br"/>There are basically two ways to deal with them, both ways being supported by Ivy:
+<ul>
+<li>use a naming convention like a special suffix</li> the idea is pretty simple, each time you publish a new integration of your module you give the same name to the version (in maven world this is for example 1.0-SNAPSHOT). The dependency manager should then be aware that this version is special because it changes over time, so that it does not trust its local cache if it already has the version, but checks the date of the version on the repository and sees if it has changed. In Ivy this is supported using the <a href="ivyfile/dependency.html">changing attribute</a> on a dependency or by configuring the <a href="configuration/resolvers.html">changing pattern</a> to use for all your modules.
+<li>automatically create a new version for each</li> in this case you use either a build number or a timestamp to publish each new integration version with a new version name. Then you can use one of the numerous ways in Ivy to <a href="ivyfile/dependency.html">express a version constraint</a>. Usually selecting the very latest one (using 'latest.integration' as version constraint) is enough.
+</ul>
+
+So, which way is the best? As often, it depends on your context, and if one of the two was really bad it wouldn't be supported in Ivy :-)<br class="xooki-br"/><br class="xooki-br"/>But usually we recommend using the second one, because using a new version each time you publish a new version better fits the version identity paradigm, and can make <b>all</b> your builds reproducible, even integration ones. And this is interesting because it enables, with some work in your build system, the ability to introduce a mechanism to promote an integration build to a more stable status, like a milestone or a release. <br class="xooki-br"/><br class="xooki-br"/>Imagine you have a customer who comes on a Monday morning and asks for the latest version of your software, for testing or demonstration purposes. Obviously he needs it for the afternoon :-) Now if you have a continuous integration process and good tracking of your changes and your artifacts, it may occur to you that you are actu
 ally able to fulfill his request without needing the use of a DeLorean to give you some more time :-) But it may also occur to you that your latest version is stable enough to be used for the purpose of the customer, but was actually built a few days ago, because the very latest just broke a feature or introduced a new one you don't want to deliver. You can deliver this 'stable' integration build if you want, but rest assured that a few days, or weeks, or even months later, the customer will ask for a bug fix on this demo only version. Why? Because it's a customer, and we all know how they are :-)<br class="xooki-br"/><br class="xooki-br"/>So, with a build promotion feature of any build in your repository, the solution would be pretty easy: when the customer asks for the version, you not only deliver the integration build, but you also promote it to a milestone status, for example. This promotion indicates that you should keep track of this version for a long period, to be a
 ble to come back to it and create a branch if needed.<br class="xooki-br"/><br class="xooki-br"/>Unfortunately Ivy does not by its own allow you to have such reproducible builds out of the box, simply because Ivy is a dependency manager, not a build tool. But if you publish only versions with a distinct name and use Ivy features like versions constraint replacement during the publication or recursive delivery of modules, it can really help.<br class="xooki-br"/><br class="xooki-br"/>On the other hand, the main drawback of this solution is that it can produce a lot of intermediate versions, and  you will have to run some cleaning scripts in your repository unless your company name starts with a G and ends with oogle :-)<br class="xooki-br"/><br class="xooki-br"/><h1>Inlining dependencies or not?</h1>
+With Ivy 1.4 you can resolve a dependency without even writing an ivy file. This pratice is called inlining. But what is it good for, and when should it be avoided?<br class="xooki-br"/><br class="xooki-br"/>Putting ivy dependencies in a separate file has the following advantages:
+<ul>
+<li>separate revision cycle</li> if your dependencies may change more often than your build, it's a good idea to separate the two, to isolate the two concepts: describing how to build / describing your project dependencies
+<li>possibility to publish</li> if you describe dependencies of a module which can itself be reused, you may want to use ant to publish it to a repository. In this case the publication is only possible if you have a separate ivy file
+<li>more flexible</li> inline dependencies can only be used to express one dependency and only one. An ivy file can be used to express much more complex dependencies
+</ul>
+On the other hand, using inline dependencies is very useful when:
+<ul>
+<li>you want to use a custom task in your ant build</li> Without ivy you usually either copy the custom task jar in ant lib, which requires maintenance of your workstation installation, or use a manual copy or download and a taskdef with the appropriate classpath, which is better. But if you have several custom tasks, or if they have themselves dependencies, it can become cumbersome. Using Ivy with an inline dependency is an elegant way to solve this problem.
+<li>you want to easily deploy an application</li> If you already build your application and its modules using Ivy, it is really easy to leverage your ivy repository to download your application and all its dependencies on the local filesystem, ready to be executed. If you also put your configuration files as artifacts in your repository (maybee packaged as a zip), the whole installation process can rely on ivy, easing the automatic installation of <b>any</b> version of your application available in your repository!
+</ul>
+<h1>Hire an expert</h1>
+Build and dependency management is often given too low a priority in the software development world. We often see build management implemented by developers when they have time. Even if this may seem like a time and money savings in the short term, it often turns out to be a very bad choice in the long term. Building software is not a simple task, when you want to ensure automatic, tested, fully reproducible builds, releases and installations. On the other hand, once a good build system fitting your very specific needs is setup, it can then only rely on a few people with a good understanding of what is going on, with a constant quality ensured. <br class="xooki-br"/><br class="xooki-br"/>Therefore hiring a build and dependency expert to analyse and improve your build and release system is most of the time a very good choice.<br class="xooki-br"/><br class="xooki-br"/><h1>Feedback</h1>
+These best practices reflect our own experience, but we do not pretend to own the unique truth about dependency management or even Ivy use.<br class="xooki-br"/><br class="xooki-br"/>So feel free to comment on this page to add your own experience feedback, suggestions or opinion.<br class="xooki-br"/>	
+ 		</div><!-- main -->
+		</td>
+	</tr>
+</table>
+
+<table id="footer-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td align="center" valign="middle">
+		<div class="primary-links">:: 
+			<a href="index.html">Home</a> ::
+			<a href="download.html">Download</a> ::
+			<a href="history/latest-milestone/index.html">Documentation</a> ::
+			<a href="get-involved.html">Get Involved</a> ::
+			<a href="search.html">Search</a> ::
+		</div>
+		</td>
+	</tr>
+</table>
+
+
+
+<div id="footer-message"></div>
+
+
+</div><!-- body -->
+</body>
+</html>