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/07/08 12:00:27 UTC

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

Added: ant/ivy/site/target/history/2.2.0-rc1/tutorial/multiproject.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0-rc1/tutorial/multiproject.html?rev=961685&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0-rc1/tutorial/multiproject.html (added)
+++ ant/ivy/site/target/history/2.2.0-rc1/tutorial/multiproject.html Thu Jul  8 10:00:21 2010
@@ -0,0 +1,233 @@
+<!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: 1};</script>	
+	
+
+<title>Using Ivy in multiple projects environment | 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-rc1)</a> &gt; <a href="../tutorial.html" >Tutorials</a> &gt; <a href="../tutorial/multiproject.html" class="current">Using Ivy in multiple projects environment</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-rc1)</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="open"><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" class="current">Using Ivy in multiple projects environment</a></li><li id="xooki-tuto
 rial/conf"><a href="../tutorial/conf.html" >Using 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="closed"><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 i
 d="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-setting
 s/lock-strategies"><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="close
 d"><li id="xooki-settings/namespace/fromtosystem" 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="submenu"><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/reposito
 ry.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/dependen
 cy.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" >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-u
 se/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" >cleancache</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 hre
 f="../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/report.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">Using Ivy in multiple projects environment</h1>
+            <br class="xooki-br"/>In the previous tutorial you have seen how to deal with dependencies between two simple projects.<br class="xooki-br"/><br class="xooki-br"/>This tutorial will guide you through the use of ivy in a more complete environment. All the sources of this tutorial are available in src/example/multi-project in ivy distribution.<br class="xooki-br"/><br class="xooki-br"/><h1>Context</h1>
+Here is a 10000ft overview of the projects involved in this tutorial:
+<ul>
+<li>version</li> helps to identify module by a version
+<li>list</li> gives a list of files in a directory (recursively)
+<li>size</li> gives the total size of all files in a directory, or of a collection of files
+<li>find</li> find files in a given dir or among a list of files which match a given name
+<li>sizewhere</li> gives the total size of files matching a name in a directory
+<li>console</li> give access to all other modules features through a simple console app
+</ul>
+For sure this is not aimed to demonstrate how to develop a complex app or give indication of advanced algorithm :-)<br class="xooki-br"/><br class="xooki-br"/>But this gives a simple understanding of how Ant+Ivy can be used to develop an application divided in multiple modules.<br class="xooki-br"/><br class="xooki-br"/>Now, here is how these modules relate to each other:<br class="xooki-br"/><center><a href="../samples/projects-dependencies-graph.jpg"><img src="../samples/projects-dependencies-graph-small.jpg" alt="dependencies graph"/><br/><i>click to enlarge</i></a></center>
+
+Modules in yellow are the modules described in this tutorial, and modules in blue are external dependencies (we will see how to generate this graph later in this tutorial).<br class="xooki-br"/><br class="xooki-br"/>As you can see, we have here a pretty interesting set of modules with dependencies between each other, each depending on the latest version of the others.<br class="xooki-br"/><br class="xooki-br"/><h1>The example files</h1>
+The sources for this tutorial can be found in src/example/multi-project in the ivy distribution. In this directory, you will find the following files:
+<ul>
+<li><a href="https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/example/multi-project/build.xml">build.xml</a></li>This is a root build file which can be used to call targets on all modules, in the order of their dependencies (ensuring that a module is always built before any module depending on it, for instance)
+<li>common
+<ul>
+<li><a href="https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/example/multi-project/common/common.xml">common.xml</a></li> the common build file imported by all build.xml files for each project. This build defines the targets which can be used in all projects.
+<li><a href="https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/example/multi-project/common/build.properties">build.properties</a></li>some properties common to all projects
+</ul>
+</li>
+<li>projects</li>
+contains a directory per module, with for each
+<ul>
+<li>ivy.xml</li>Ivy file of the module, describing its dependencies upon other modules and / or external modules.<br class="xooki-br"/>Example:
+<pre>
+&lt;ivy-module version="1.0"&gt;<br class="xooki-br"/>    &lt;info <br class="xooki-br"/>        organisation="org.apache.ivy.example"<br class="xooki-br"/>        module="find"<br class="xooki-br"/>        status="integration"/&gt;<br class="xooki-br"/>    &lt;configurations&gt;<br class="xooki-br"/>      &lt;conf name="core"/&gt;<br class="xooki-br"/>      &lt;conf name="standalone" extends="core"/&gt;<br class="xooki-br"/>    &lt;/configurations&gt;<br class="xooki-br"/>    &lt;publications&gt;<br class="xooki-br"/>      &lt;artifact name="find" type="jar" conf="core" /&gt;<br class="xooki-br"/>    &lt;/publications&gt;<br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>      &lt;dependency name="version" rev="latest.integration" conf="core-&gt;default" /&gt;<br class="xooki-br"/>      &lt;dependency name="list" rev="latest.integration" conf="core" /&gt;<br class="xooki-br"/>      &lt;dependency org="commons-collections" name="commons-collections" rev="3.1
 " conf="core-&gt;default" /&gt;<br class="xooki-br"/>      &lt;dependency org="commons-cli" name="commons-cli" rev="1.0" conf="standalone-&gt;default" /&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre>
+<li>build.xml</li>The build file of the project, which consists mainly in an import of the common build file and of a module specific properties file:
+<pre>
+&lt;project name="find" default="compile"&gt;<br class="xooki-br"/>	&lt;property file="build.properties"/&gt;<br class="xooki-br"/>	<br class="xooki-br"/>	&lt;import file="${common.dir}/common.xml"/&gt;<br class="xooki-br"/>&lt;/project&gt;
+</pre>
+<li>build.properties</li>Module specific properties + properties to find the common build file
+<pre>
+projects.dir = ${basedir}/..<br class="xooki-br"/>wkspace.dir = ${projects.dir}/..<br class="xooki-br"/>common.dir = ${wkspace.dir}/common
+</pre>
+<li>src</li> the source directory with all java sources
+</ul>
+</ul>
+
+Note that this doesn't demonstrate good practice for software development in general, in particular you won't find any unit test in these samples, even if we think unit testing is very important. But this isn't the aim of this tutorial.<br class="xooki-br"/><br class="xooki-br"/>Now that you are a bit more familiar with the structure, let's have a look at the most important part of this example: the common build file. Indeed, as you have seen all modules build files only import the common build file, and defines their dependencies in their ivy files (which you should begin to be familiar with).<br class="xooki-br"/><br class="xooki-br"/>So, here are some aspects of this common build file:<br class="xooki-br"/><h2>ivy settings</h2>
+<pre>
+&lt;!-- setup ivy default configuration with some custom info --&gt;<br class="xooki-br"/>&lt;property name="ivy.local.default.root" value="${repository.dir}/local"/&gt;<br class="xooki-br"/>&lt;property name="ivy.shared.default.root" value="${repository.dir}/shared"/&gt;<br class="xooki-br"/><br class="xooki-br"/>&lt;!-- here is how we would have configured ivy if we had our own ivysettings file<br class="xooki-br"/>&lt;ivy:settings file="${common.dir}/ivysettings.xml" id="ivy.instance" /&gt;<br class="xooki-br"/>--&gt;
+</pre>
+
+This declaration configures ivy only by setting two properties: the location for the local repository and the location for the shared repository. It's the only settings done here, since ivy is configured by default to work in a team environment (see <a href="../tutorial/defaultconf.html">default settings tutorial</a> for details about this). For sure in a real environment the shared repository location would rather be in a team shared directory (or in a more complex repository, again see the default settings tutorial to see how to use something really different).<br class="xooki-br"/>Commented out you can see how the settings would have been done if the default settings wasn't ok for our purpose.<br class="xooki-br"/><br class="xooki-br"/><h2>resolve dependencies</h2>
+<pre>
+&lt;target name="resolve" depends="clean-lib, load-ivy" description="--&gt; resolve and retrieve dependencies with ivy"&gt;<br class="xooki-br"/>    &lt;mkdir dir="${lib.dir}"/&gt; &lt;!-- not usually necessary, ivy creates the directory IF there are dependencies --&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't --&gt;<br class="xooki-br"/>    &lt;ivy:resolve file="${ivy.file}"/&gt;<br class="xooki-br"/>    &lt;ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" /&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+You should begin to be familiar with this kind of use of Ivy. We call resolve explicitly to use the ivy file configured (the default would have been fine), and then call retrieve to copy resolved dependencies artifacts from the cache to a local lib directory. The pattern is also used to name the artifacts in the lib dir with their name and extension only (without revision), this is easier to use with an IDE, the IDE configuration won't change when the artifacts version change.<br class="xooki-br"/><br class="xooki-br"/><h2>ivy-new-version</h2>
+<pre>
+&lt;target name="ivy-new-version" depends="load-ivy" unless="ivy.new.revision"&gt;<br class="xooki-br"/>    &lt;!-- default module version prefix value --&gt;<br class="xooki-br"/>    &lt;property name="module.version.prefix" value="${module.version.target}-dev-b" /&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;!-- asks to ivy an available version number --&gt;<br class="xooki-br"/>    &lt;ivy:info file="${ivy.file}" /&gt;<br class="xooki-br"/>    &lt;ivy:buildnumber <br class="xooki-br"/>        organisation="${ivy.organisation}" module="${ivy.module}" <br class="xooki-br"/>        revision="${module.version.prefix}" defaultBuildNumber="1" revSep=""/&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+This target is used to ask Ivy to find a new version for a module. To get detailed about the module we are dealing with, we use directly the information found in the ivy file using the ivy:info task. Then the <a href="../use/buildnumber.html">buildnumber</a> task is used to get a new revision, based on a prefix we set with a property, by default it will be 1.0-dev-b (have a look at the default value for module.version.target in the common build properties file). Each module build by this common build file could easily override this by either setting a different module.version.target in its module specific build.properties, or even overriding module.version.prefix. To get the new revision Ivy scans the repository to find the latest available version with the given prefix, and increment this version by 1.<br class="xooki-br"/><br class="xooki-br"/><h2>publish</h2>
+<pre>
+&lt;target name="publish" depends="clean-build, jar" description="--&gt; publish this project in the ivy repository"&gt;<br class="xooki-br"/>    &lt;ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" <br class="xooki-br"/>                       resolver="shared"<br class="xooki-br"/>                       pubrevision="${version}" <br class="xooki-br"/>                       status="release"<br class="xooki-br"/>    /&gt;<br class="xooki-br"/>    &lt;echo message="project ${ant.project.name} released with version ${version}" /&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+This target publishes the module in the shared repository, with the revision found in the version property, which is set by other targets (based on ivy-new-version we have seen above). It can be used when a module reaches a specific milestone, or whenever you want the team to benefit from a new version of the module.<br class="xooki-br"/><h2>publish-local</h2>
+<pre>
+&lt;target name="publish-local" depends="local-version, jar" description="--&gt; publish this project in the local ivy repository"&gt;<br class="xooki-br"/>    &lt;ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" <br class="xooki-br"/>                    resolver="local"<br class="xooki-br"/>                    pubrevision="${version}"<br class="xooki-br"/>                    pubdate="${now}"<br class="xooki-br"/>                    status="integration"<br class="xooki-br"/>                    forcedeliver="true"<br class="xooki-br"/>    /&gt;<br class="xooki-br"/>    &lt;echo message="project ${ant.project.name} published locally with version ${version}" /&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+This is very similar to the publish task, except that this publish the revision in the local repository, which is used only in your environment and doesn't disturb the team. When you change something in a module and want to benefit from the change in another one, you can simply call publish-local in this module, and then your next build of the other module will automatically get this local version.<br class="xooki-br"/><h2>clean-local</h2>
+<pre>
+&lt;target name="clean-local" description="--&gt; cleans the local repository for the current module"&gt;<br class="xooki-br"/>   &lt;delete dir="${ivy.local.default.root}/${ant.project.name}"/&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+This target is used when you don't want to use your local version of a module anymore, for example when you release a new version to the whole team, or discard your local changes and want to take advantage of a new version from the team.<br class="xooki-br"/><h2>report</h2>
+<pre>
+&lt;target name="report" depends="resolve" description="--&gt; generates a report of dependencies"&gt;<br class="xooki-br"/>    &lt;ivy:report todir="${build.dir}"/&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+Generates both an html report and a graphml report.<br class="xooki-br"/><br class="xooki-br"/>For example, to generate a graph like the one shown at the beginning of this tutorial, you just have to follow the instructions given <a href="../yed.html">here</a> with the graphml file you will find in <pre>projects/console/build/</pre> after having called report in the console project, and that's it, you have a clear overview of all your app dependencies !<br class="xooki-br"/><br class="xooki-br"/><h1>Playing with the projects</h1>
+To play with this tutorial you can use regular ant commands. Begin in the base directory of the tutorial (src/example/multi-project), and run ant -p:
+<div class="shell"><pre>
+[ivy@apache:/ivy/multi-project]$ ant -p
+Buildfile: /ivy/multi-project/build.xml
+
+Main targets:
+
+ clean        clean tutorial: delete repository, ivy cache, and all projects
+ clean-all    clean all projects
+ publish-all  compile, jar and publish all projects in the right order
+
+</pre></div>
+
+This gives you an idea of what you can do here. To make sure you have at least one version of all your modules published in your repository (required to build modules having dependencies on the others), you can run ant publish-all (example log <a href="log/multi-project-general-publishall.txt">here</a>).<br class="xooki-br"/><br class="xooki-br"/>You will see that Ivy calls the publish target on all the modules, following the order of the dependencies, so that a dependee is always built and published before its depender. Feel free to make changes in the source code of a module (changing a method name for instance) and in the module using the method, then call publish-all to see how the change in the dependee is compiled first, published, and then available to the depender which can compile successfully.<br class="xooki-br"/><br class="xooki-br"/>Then you can go in one of the example project directory (like projects/find for instance), and run ant -p:
+<div class="shell"><pre>
+[ivy@apache:/ivy/multi-project/projects/find]$ ant -p
+Buildfile: /ivy/multi-project/projects/find/build.xml
+
+Main targets:
+
+ clean          --> clean the project
+ clean-build    --> clean the project built files
+ clean-lib      --> clean the project libraries directory (dependencies)
+ clean-local    --> cleans the local repository for the current module
+ compile        --> compile the project
+ jar            --> make a jar file for this project
+ publish        --> publish this project in the ivy repository
+ publish-local  --> publish this project in the local ivy repository
+ report         --> generates a report of dependencies
+ resolve        --> resolve and retrieve dependencies with ivy
+ run            --> compile and run the project
+Default target: compile
+
+</pre></div>
+
+You can see the targets available, thanks to the import of the common.xml build file. Pay with the project by calling resolve, publish, and see what happens when you do the same in other projects. An interesting thing to do for instance is to change the dependencies of a project: if the module version now depends on a new commons library, you will see that all other projects depending on version will get this library as part of their transitive dependencies once the new revision of the version project is published. Very easy! And if a project introduces a change with which the depender is incompatible yet, you can very easily change the dependency in the depender to move from latest.integration to a fixed version with which the depender is compatible (probably the latest before the change). Keeping your modules under control is now very easy!<br class="xooki-br"/><br class="xooki-br"/>You should then be pretty familiar with multi project development with Ivy, we hope you wil
 l appreciate its power and flexibility! And those tutorials are only the beginning of your journey with Ivy, browse the <a href="../reference.html">reference documentation</a> to learn more about the features, subscribe to the mailing lists to share your experience and ask questions with the community, browse the source code, open jira issues, submit patches, join in and help make Ivy the best dependency management tool!
+ 		</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>

Propchange: ant/ivy/site/target/history/2.2.0-rc1/tutorial/multiproject.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ant/ivy/site/target/history/2.2.0-rc1/tutorial/start.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0-rc1/tutorial/start.html?rev=961685&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0-rc1/tutorial/start.html (added)
+++ ant/ivy/site/target/history/2.2.0-rc1/tutorial/start.html Thu Jul  8 10:00:21 2010
@@ -0,0 +1,245 @@
+<!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: 1};</script>	
+	
+
+<title>Quick Start | 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-rc1)</a> &gt; <a href="../tutorial.html" >Tutorials</a> &gt; <a href="../tutorial/start.html" class="current">Quick Start</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-rc1)</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="open"><li id="xooki-tutorial/start"><a href="../tutorial/start.html" class="current">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-tuto
 rial/conf"><a href="../tutorial/conf.html" >Using 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="closed"><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 i
 d="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-setting
 s/lock-strategies"><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="close
 d"><li id="xooki-settings/namespace/fromtosystem" 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="submenu"><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/reposito
 ry.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/dependen
 cy.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" >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-u
 se/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" >cleancache</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 hre
 f="../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/report.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">Quick Start</h1>
+            <br class="xooki-br"/>In this example, we will see one of the easiest way to use Ivy. With no specific settings, Ivy uses the maven 2 repository to resolve the dependencies you declare in an Ivy file. Let's have a look at the content of the files involved. <br class="xooki-br"/><br class="xooki-br"/><em>You'll find this tutorial's sources in the ivy distribution in the src/example/hello-ivy directory.</em><br class="xooki-br"/><br class="xooki-br"/><h1>The ivy.xml file</h1>
+This file is used to describe the dependencies of the project on other libraries.<br class="xooki-br"/>Here is the sample: 
+<pre>
+&lt;ivy-module version="2.0"&gt;<br class="xooki-br"/>    &lt;info organisation="org.apache" module="hello-ivy"/&gt;<br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>        &lt;dependency org="commons-lang" name="commons-lang" rev="2.0"/&gt;<br class="xooki-br"/>        &lt;dependency org="commons-cli" name="commons-cli" rev="1.0"/&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre>
+
+The format of this file should pretty easy to understand, but let's give some details about what is declared here. First, the root element ivy-module, with the version attribute used to tell Ivy which version of Ivy this file use. <br class="xooki-br"/><br class="xooki-br"/>Then there is an info tag, which is used to give information about the module for which we are defining dependencies. Here we define only the organization and module name, you are free to choose whatever you want for them, but we recommend avoiding spaces for both of them.<br class="xooki-br"/><br class="xooki-br"/>Finally, the dependencies section let you define dependencies. Here this module depends on two libraries: commons-lang and commons-cli. As you can see we use the org and name attribute to define the organization and module name of the dependencies we need. The rev attribute is used to specify the revision of the module you depend on. <br class="xooki-br"/><br class="xooki-br"/>To know what to p
 ut in these attributes, you need to know the exact information for the libraries you depend on. Ivy uses the maven 2 repository by default. We recommend you use <a href="http://mvnrepository.com">mvnrepository.com</a> to look for the module you want. Once you find it, you will have the details on how to declare the dependency in a maven POM. For instance:
+<pre>
+&lt;dependency&gt;<br class="xooki-br"/>    &lt;groupId&gt;commons-lang&lt;/groupId&gt;<br class="xooki-br"/>    &lt;artifactId&gt;commons-lang&lt;/artifactId&gt;<br class="xooki-br"/>    &lt;version&gt;2.0&lt;/version&gt;<br class="xooki-br"/>&lt;/dependency&gt;
+</pre>
+To convert this into an Ivy dependency declaration, all you have to do is use the groupId as organization, the artifactId as module name, and the version as revision. That's what we did for the dependencies in this tutorial, that is commons-lang and commons-cli. Note that having commons-lang and commons-cli as organization is not the best example of what the organization should be. It would be better to use org.apache, org.apache.commons or org.apache.commons.lang. However, this is how these modules are identified in the maven 2 repository, so the simplest way to get them is to use the details as is (you will see in <a href="../tutorial/build-repository.html">Building a repository</a> that you can use namespaces to redefine these names if you want something cleaner).<br class="xooki-br"/><br class="xooki-br"/>If you want more details on what you can do in Ivy files, you can have a look at the <a href="../ivyfile.html">Ivy files reference documentation</a>.<br class="xooki-br
 "/><h1>The build.xml file</h1>
+The corresponding build file contains a set of targets, allowing to resolve dependencies declared in the Ivy file, to compile and run the sample code, produce a report of dependency resolution, and clean the cache or the project.<br class="xooki-br"/>You can use the standard "ant -p" to get the list of available targets. Feel free to have a look at the whole file, but here is the part relevant to dependency resolution:
+<pre>
+&lt;project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="run"&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    ...<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;!-- ================================= <br class="xooki-br"/>          target: resolve              <br class="xooki-br"/>         ================================= --&gt;<br class="xooki-br"/>    &lt;target name="resolve" description="--&gt; retrieve dependencies with ivy"&gt;<br class="xooki-br"/>        &lt;ivy:retrieve /&gt;<br class="xooki-br"/>    &lt;/target&gt;<br class="xooki-br"/>&lt;/project&gt;
+</pre>
+As you can see, it's very easy to call Ivy to resolve and retrieve dependencies: all you need if Ivy is properly <a href="../install.html">installed</a> is to define an XML namespace in your Ant file (xmlns:ivy="antlib:org.apache.ivy.ant"). Then all the <a href="../ant.html">Ivy ant tasks</a> will be available in this namespace.<br class="xooki-br"/><br class="xooki-br"/>Here we use only one task: the <a href="../use/retrieve.html">retrieve</a> task. With no attributes, it will use default settings and look for a file named ivy.xml for dependency definition. That's exactly what we want, so we need nothing more than that.<br class="xooki-br"/><br class="xooki-br"/>Note that in this case we define a "resolve" target and call the <a href="../use/retrieve.html">retrieve</a> task. This may sound confusing, actually the retrieve task performs a <a href="../use/resolve.html">resolve</a> (which resolves dependencies and downloads them to a cache) followed by a retrieve (a copy of th
 ose file in a local project directory). Check the <a href="../principle.html">How does it work ?</a> page for details about that.<br class="xooki-br"/><h1>Running the project</h1>
+Ok, now that we have seen the files involved, let's run the sample to see what happens. Open a shell (or command line) window, and enter the hello-ivy example directory.<br class="xooki-br"/>Then, at the command prompt, run 'ant':
+<div class="shell"><pre>
+[ivy@apache:/ivy/hello-ivy]$ ant 
+Buildfile: /ivy/hello-ivy/build.xml
+
+resolve:
+[ivy:retrieve] :: Ivy 2.2.0-rc1 - 20100629224905 :: http://ant.apache.org/ivy/ ::
+[ivy:retrieve] :: loading settings :: url = jar:file:///home/ivy/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:retrieve] :: resolving dependencies :: org.apache#hello-ivy;working@apache
+[ivy:retrieve] 	confs: [default]
+[ivy:retrieve] 	found commons-lang#commons-lang;2.0 in public
+[ivy:retrieve] 	found commons-cli#commons-cli;1.0 in public
+[ivy:retrieve] 	found commons-logging#commons-logging;1.0 in public
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-lang/commons-lang/2.0/commons-lang-2.0-javadoc.jar ...
+[ivy:retrieve] .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
+[ivy:retrieve] ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ (467kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-lang#commons-lang;2.0!commons-lang.jar(javadoc) (4056ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-lang/commons-lang/2.0/commons-lang-2.0-sources.jar ...
+[ivy:retrieve] ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ (245kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-lang#commons-lang;2.0!commons-lang.jar(source) (2621ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-lang/commons-lang/2.0/commons-lang-2.0.jar ...
+[ivy:retrieve] ........................................................................................................................................................................................................................................................................................................................................... (165kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-lang#commons-lang;2.0!commons-lang.jar (1809ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0.jar ...
+[ivy:retrieve] ........................................................ (29kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-cli#commons-cli;1.0!commons-cli.jar (1638ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0-javadoc.jar ...
+[ivy:retrieve] ............................................................................................................................................................................................. (92kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-cli#commons-cli;1.0!commons-cli.jar(javadoc) (2403ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0-sources.jar ...
+[ivy:retrieve] ...................................................................................................... (48kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-cli#commons-cli;1.0!commons-cli.jar(source) (2106ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-logging/commons-logging/1.0/commons-logging-1.0.jar ...
+[ivy:retrieve] ........................................... (21kB)
+[ivy:retrieve] ... (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-logging#commons-logging;1.0!commons-logging.jar (1825ms)
+[ivy:retrieve] :: resolution report :: resolve 9314ms :: artifacts dl 16520ms
+[ivy:retrieve] 	:: evicted modules:
+[ivy:retrieve] 	commons-lang#commons-lang;1.0 by [commons-lang#commons-lang;2.0] in [default]
+	---------------------------------------------------------------------
+	|                  |            modules            ||   artifacts   |
+	|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+	---------------------------------------------------------------------
+	|      default     |   4   |   3   |   3   |   1   ||   7   |   7   |
+	---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache#hello-ivy
+[ivy:retrieve] 	confs: [default]
+[ivy:retrieve] 	7 artifacts copied, 0 already retrieved (1069kB/62ms)
+
+run:
+    [mkdir] Created dir: /ivy/hello-ivy/build
+    [javac] /ivy/hello-ivy/build.xml:53: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+    [javac] Compiling 1 source file to /ivy/hello-ivy/build
+     [java] standard message : hello ivy !
+     [java] capitalized by org.apache.commons.lang.WordUtils : Hello Ivy !
+
+BUILD SUCCESSFUL
+Total time: 28 seconds
+
+</pre></div>
+<h1>What happened ?</h1>
+Without any settings, Ivy retrieves files from the maven 2 repository. That's what happened here. <br class="xooki-br"/>The resolve task has found the commons-lang and commons-cli modules in the maven 2 repository, identified that commons-cli depends on commons-logging and so resolved it as a transitive dependency. Then Ivy has downloaded all corresponding artifacts in its cache (by default in your user home, in a .ivy2/cache directory). Finally, the retrieve task copies the resolved jars from the ivy cache to the default library directory of the project: the lib dir (you can change this easily by setting the pattern attribute on the <a href="../use/retrieve.html">retrieve</a> task).<br class="xooki-br"/><br class="xooki-br"/>You might say that the task took a long time just to write out a "Hello Ivy !" message. But remember that a lot of time was spent downloading the required files from the web. Let's try to run it again:
+<div class="shell"><pre>
+[ivy@apache:/ivy/hello-ivy]$ ant 
+Buildfile: /ivy/hello-ivy/build.xml
+
+resolve:
+[ivy:retrieve] :: Ivy 2.2.0-rc1 - 20100629224905 :: http://ant.apache.org/ivy/ ::
+[ivy:retrieve] :: loading settings :: url = jar:file:///home/ivy/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:retrieve] :: resolving dependencies :: org.apache#hello-ivy;working@apache
+[ivy:retrieve] 	confs: [default]
+[ivy:retrieve] 	found commons-lang#commons-lang;2.0 in public
+[ivy:retrieve] 	found commons-cli#commons-cli;1.0 in public
+[ivy:retrieve] 	found commons-logging#commons-logging;1.0 in public
+[ivy:retrieve] :: resolution report :: resolve 203ms :: artifacts dl 16ms
+[ivy:retrieve] 	:: evicted modules:
+[ivy:retrieve] 	commons-lang#commons-lang;1.0 by [commons-lang#commons-lang;2.0] in [default]
+	---------------------------------------------------------------------
+	|                  |            modules            ||   artifacts   |
+	|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+	---------------------------------------------------------------------
+	|      default     |   4   |   0   |   0   |   1   ||   7   |   0   |
+	---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache#hello-ivy
+[ivy:retrieve] 	confs: [default]
+[ivy:retrieve] 	0 artifacts copied, 7 already retrieved (0kB/0ms)
+
+run:
+    [javac] /ivy/hello-ivy/build.xml:53: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+     [java] standard message : hello ivy !
+     [java] capitalized by org.apache.commons.lang.WordUtils : Hello Ivy !
+
+BUILD SUCCESSFUL
+Total time: 1 second
+
+</pre></div>
+Great! the cache was used, no download was needed and the build was instantaneous.<br class="xooki-br"/><br class="xooki-br"/>And now, if you want to generate a report detailing all the dependencies of your module, you can call the report target, and check the generated file in the build directory. You should obtain something looking like <a href="../samples/apache-hello-ivy-default.html">this</a>.<br class="xooki-br"/><br class="xooki-br"/>As you can see, using Ivy to resolve dependencies stored in the maven 2 repository is extremely easy. Now you can go on with the next tutorials to learn more about <a href="../tutorial/conf.html">how to use module configurations</a> which is a very powerful Ivy specific feature. Other tutorials are also available where you will learn how to use Ivy settings to leverage a possibly complex enterprise repository. It may also be a good time to start reading the <a href="../reference.html">reference documentation</a>, and especially the introd
 uction material which gives a good overview of Ivy. The <a href="../bestpractices.html">best practices</a> page is also a must read to start thinking about how to use Ant+Ivy to build a clean and robust build system.
+ 		</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>

Propchange: ant/ivy/site/target/history/2.2.0-rc1/tutorial/start.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ant/ivy/site/target/history/2.2.0-rc1/use/artifactproperty.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0-rc1/use/artifactproperty.html?rev=961685&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0-rc1/use/artifactproperty.html (added)
+++ ant/ivy/site/target/history/2.2.0-rc1/use/artifactproperty.html Thu Jul  8 10:00:21 2010
@@ -0,0 +1,160 @@
+<!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: 1};</script>	
+	
+
+<title>artifactproperty | 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-rc1)</a> &gt; <a href="../reference.html" >Reference</a> &gt; <a href="../ant.html" >Ant Tasks</a> &gt; <a href="../use/artifactproperty.html" class="current">artifactproperty</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-rc1)</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" >Using 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-princi
 ple"><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/lock-strategi
 es"><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="xook
 i-settings/namespace/fromtosystem" 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="../set
 tings/outputters.html" >outputters</a></li><li id="xooki-settings/statuses" class="submenu"><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" >repos
 itory</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" >depen
 dency</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" >Ant Tasks</a><ul class="open"><li id="xooki-use/artifactproperty"><a href="../use/artifactproperty.html" class="current">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" >cleancache</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/report.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">artifactproperty</h1>
+            
+<div class="since">since 1.1</div>
+Sets an ant property for each dependency artifacts previously resolved.<br class="xooki-br"/><br class="xooki-br"/><span class="since">since 2.0</span> This is a <a href="../use/postresolvetask.html">post resolve task</a>, with all the behaviour and attributes common to all post resolve tasks.<br class="xooki-br"/><br class="xooki-br"/>Please prefer the use of retrieve + standard ant path creation, which make your build more independent from ivy (once artifacts are properly retrieved, ivy is not required any more).<br class="xooki-br"/><br class="xooki-br"/>The property name and value are generated using the classical pattern concept, all artifact tokens and ivy variables being available.<br class="xooki-br"/><br class="xooki-br"/><span class="since">since 2.0</span> This tag will follow the ant usual behavior for properties.  If a property of the same name already exist, it's value will be unchanged.  This behavior can be changed using the 'overwrite' attribute.<br class="x
 ooki-br"/><i>WARNING : Before 2.0, the behavior was to overwrite the properties.  Since 2.0, the default is to not overwrite to properties</i><br class="xooki-br"/><br class="xooki-br"/><br class="xooki-br"/><h1>Attributes</h1>
+
+<table class="ant">
+<thead>
+    <tr><th class="ant-att">Attribute</th><th class="ant-desc">Description</th><th class="ant-req">Required</th></tr>
+</thead>
+<tbody>
+    <tr><td>name</td><td>a pattern used to generate the name of the properties to set</td>
+        <td>Yes</td></tr>
+    <tr><td>value</td><td>a pattern used to generate the value of the properties to set</td>
+        <td>Yes</td></tr>
+    <tr><td>conf</td><td>a comma separated list of the configurations for which properties should be set</td>
+        <td>No. Defaults to the configurations resolved by the last resolve call, or * if no resolve was explicitly called</td></tr>
+    <tr><td>haltonfailure</td><td>true to halt the build on ivy failure, false to continue</td><td>No. Defaults to true</td></tr>
+    <tr><td>validate</td><td>true to force ivy files validation against ivy.xsd, false to force no validation</td>
+        <td>No. Defaults to default ivy value (as configured in configuration file)</td></tr>
+    <tr><td>settingsRef</td><td>A reference to the ivy settings that must be used by this task <b>(since 2.0)</b></td><td>No, 'ivy.instance' is taken by default.</td></tr>
+    <tr><td>overwrite</td><td>Overwrite the value of the property if it already exist <b>(since 2.0)</b>.  Before 2.0, the properties were always overwritten.</td><td>No, 'false' by default.</td></tr>
+</tbody>
+</table>
+
+<h1>Example</h1>
+Suppose we have one dependency called <i>mydep</i> in revision 1.0 publishing two artifacts: <i>foo.jar</i> and <i>bar.jar</i>.<br class="xooki-br"/>Then:
+<pre>
+&lt;artifactproperty conf="build" <br class="xooki-br"/>       name="[module].[artifact]-[revision]" <br class="xooki-br"/>       value="${cache.dir}/[module]/[artifact]-[revision].[ext]"/&gt;
+</pre>
+will set two properties:
+<pre>
+mydep.foo-1.0 = my/cache/dir/mydep/foo-1.0.jar<br class="xooki-br"/>mydep.bar-1.0 = my/cache/dir/mydep/bar-1.0.jar
+</pre>
+
+	
+ 		</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>

Propchange: ant/ivy/site/target/history/2.2.0-rc1/use/artifactproperty.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain