You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2014/12/26 17:13:31 UTC

svn commit: r1647991 [9/12] - in /ant/site/ivy/production/history/2.4.0: configuration/ configuration/caches/ configuration/macrodef/ configuration/namespace/ tutorial/ tutorial/build-repository/

Added: ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html
URL: http://svn.apache.org/viewvc/ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html?rev=1647991&view=auto
==============================================================================
--- ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html (added)
+++ ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html Fri Dec 26 16:13:30 2014
@@ -0,0 +1,309 @@
+<!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: 2};</script>	
+	
+
+<title>Basic repository copy | Apache Ivy&#153;</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://www.apache.org/">Apache&#153;</a> &gt; <a href="http://ant.apache.org/">Apache Ant&#153;</a> &gt; <a href="http://ant.apache.org/ivy/">Apache Ivy&#153;</a> &gt; <span class="breadCrumb"><a href="../../index.html" >Documentation (2.4.0)</a> &gt; <a href="../../tutorial.html" >Tutorials</a> &gt; <a href="../../tutorial/build-repository.html" >Building a repository</a> &gt; <a href="../../tutorial/build-repository/basic.html" class="current">Basic repository copy</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>Apache Ivy&#153;</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview">
+<li id="xooki-index" class="submenu"><a href="../../index.html" >Documentation (2.4.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="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" >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="open"><li id="xooki-tutorial/build-repository/basic"><a href="../../tutorial/build-repository/basic.html" class="current">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 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-compatibility"><a href="../../compatibility.html" >Compatibility</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 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/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 resolver</a></li>
+<li id="xooki-resolver/jar"><a href="../../resolver/jar.html" >Jar resolver</a></li>
+<li id="xooki-resolver/obr"><a href="../../resolver/obr.html" >OSGi Bundle Repository</a></li>
+<li id="xooki-resolver/osgiagg"><a href="../../resolver/osgiagg.html" >Aggregated OSGi Repository</a></li>
+<li id="xooki-resolver/updatesite"><a href="../../resolver/updatesite.html" >Eclipse updatesite</a></li>
+<li id="xooki-resolver/mirrored"><a href="../../resolver/mirrored.html" >Mirrored Resolver</a></li>
+<li id="xooki-resolver/bintray"><a href="../../resolver/bintray.html" >Bintray Resolver</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/signers"><a href="../../settings/signers.html" >signers</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" >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.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/buildobr"><a href="../../use/buildobr.html" >buildobr</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/checkdepsupdate"><a href="../../use/checkdepsupdate.html" >checkdepsupdate</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/convertmanifest"><a href="../../use/convertmanifest.html" >convertmanifest</a></li>
+<li id="xooki-use/convertpom"><a href="../../use/convertpom.html" >convertpom</a></li>
+<li id="xooki-use/deliver"><a href="../../use/deliver.html" >deliver</a></li>
+<li id="xooki-use/dependencytree"><a href="../../use/dependencytree.html" >dependencytree</a></li>
+<li id="xooki-use/findrevision"><a href="../../use/findrevision.html" >findrevision</a></li>
+<li id="xooki-use/fixdeps"><a href="../../use/fixdeps.html" >fixdeps</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/resources"><a href="../../use/resources.html" >resources</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>
+<li id="xooki-osgi" class="submenu"><a href="../../osgi.html" >OSGi</a><ul class="closed"><li id="xooki-osgi/osgi-mapping"><a href="../../osgi/osgi-mapping.html" >OSGi mapping</a></li>
+<li id="xooki-osgi/eclipse-plugin"><a href="../../osgi/eclipse-plugin.html" >Building an Eclipse plugin</a></li>
+<li id="xooki-osgi/standard-osgi"><a href="../../osgi/standard-osgi.html" >Building a standard OSGi bundle</a></li>
+<li id="xooki-osgi/target-platform"><a href="../../osgi/target-platform.html" >Managing a target platform</a></li>
+<li id="xooki-osgi/sigil"><a href="../../osgi/sigil.html" >Apache Felix Sigil</a></li>
+</ul></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>
+</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">Basic repository copy</h1>
+            <br class="xooki-br"/>In this first step, we use the <a href="../../use/install.html">install</a> Ant task to install modules from the maven 2 repository to a file system based repository. We first install a module by itself, excluding dependencies, then again with its dependencies.<br class="xooki-br"/><br class="xooki-br"/><h1>Basic: ivysettings.xml file used</h1>
+The ivy settings file that we will use is very simple here. It defines two resolvers, <i>libraries</i> and <i>my-repository</i>. The first one is used as the source, the second one as the destination. In a typical setup, the second one would be configured using an <a href="../../settings/include.html">include</a> that included an existing settings file used by the development team.<br class="xooki-br"/>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>	&lt;settings	defaultResolver="libraries"<br class="xooki-br"/>			defaultConflictManager="all" /&gt;		&lt;!-- in order to get all revisions without any eviction --&gt;<br class="xooki-br"/>	&lt;caches defaultCacheDir="${ivy.cache.dir}/no-namespace" /&gt;<br class="xooki-br"/>	&lt;resolvers&gt;<br class="xooki-br"/>		&lt;ibiblio name="libraries" m2compatible="true" /&gt;<br class="xooki-br"/>  		&lt;filesystem name="my-repository"&gt;<br class="xooki-br"/>  			&lt;ivy pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/ivys/ivy-[revision].xml"/&gt;<br class="xooki-br"/>  			&lt;artifact pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/&gt;<br class="xooki-br"/>  		&lt;/filesystem&gt;<br class="xooki-br"/>	&lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+
+<h1>install a simple module with no dependencies</h1>
+Let's have a look at the <em>maven2</em> target.
+<pre>
+    &lt;target name="maven2" depends="init-ivy"<br class="xooki-br"/>    	description="--&gt; install module from maven 2 repository"&gt;<br class="xooki-br"/>    	&lt;ivy:install settingsRef="basic.settings" <br class="xooki-br"/>    		organisation="commons-lang" module="commons-lang" revision="1.0" <br class="xooki-br"/>    		from="${from.resolver}" to="${to.resolver}" /&gt;<br class="xooki-br"/>    &lt;/target&gt;
+</pre>
+Pretty simple, we call the [[ant:install] task with the settings we have loaded using <a href="../../use/settings.html">ivy:settings</a> as usual. We then set the source and destination repositories using the <i>from</i> and <i>to</i> attributes. We used Ant properties for these values here, which helps ease the maintenance of the script, but it's basically the name of our resolvers: 'libraries' for the source and 'my-repository' for the destination.<br class="xooki-br"/><br class="xooki-br"/>Here is the Ant call output :
+<div class="shell"><pre>
+
+</pre></div>
+The trace tells us that the module definition was found using the "libraries" resolver and that the corresponding artifact was downloaded from the maven 2 repository. Then both were published to the filesystem repository (my-repository).<br class="xooki-br"/><br class="xooki-br"/>Let's have a look at our repository :
+<div class="shell"><pre>
+
+</div>
+We can see that we now have the commons-lang module version 1.0 in our repository, with a generated ivy.xml file, its jar, and all the md5 and sha1 checksums for future consistency checks when developers use this repository to resolve modules.<br class="xooki-br"/><br class="xooki-br"/><h1>install a module with dependencies</h1>
+Now let's say that we want to be sure all the dependencies of the module we install are available in our repository after the installation. We could either install without dependencies on a staging repository and check the missing dependencies (more control), or use transitive dependency management and ask Ivy to install everything for us (much simpler).<br class="xooki-br"/><br class="xooki-br"/>The <tt>maven2-deps</tt> target is very similar to the one described above, except that we explicitly ask for transitive installation.
+<pre>
+    &lt;target name="maven2-deps" depends="init-ivy" <br class="xooki-br"/>    	description="--&gt; install module from maven 2 repository with dependencies"&gt;<br class="xooki-br"/>    	&lt;ivy:install settingsRef="basic.settings" <br class="xooki-br"/>    		organisation="org.hibernate" module="hibernate" revision="3.2.5.ga" <br class="xooki-br"/>    		from="${from.resolver}" to="${to.resolver}" transitive="true" /&gt;<br class="xooki-br"/>    &lt;/target&gt;
+</pre>
+
+If you call this target, you will see that Ivy installs not only the hibernate module but also its dependencies:
+<div class="shell"><pre>
+
+</pre>
+</div>
+
+As you can see the installation has failed, if you look at the log you will see that there are missing artifacts on the source repository. This means that you will need to download those artifacts manually, and copy them to your destination repository to complete the installation. Fortunately Ivy uses a best effort algorithm during install, so that everything gets installed except the missing artifacts. (Note: these missing artifacts are not in the public maven repository due to licensing issues)<br class="xooki-br"/><br class="xooki-br"/>You may also have noticed that Ivy installed 2 different revisions of commons-logging (1.0.2, 1.0.4). This is due to the fact that we used the "no conflict" <a href="../../settings/conflict-managers.html">conflict manager</a> in the ivysettings file.<br class="xooki-br"/><br class="xooki-br"/>We do not want to evict any modules because we are building our own repository. Indeed if we get both commons-logging 1.0.2 and 1.0.4 it's because some module
 s among the transitive dependencies of hibernate depend on 1.0.2 and others on 1.0.4. If we got only 1.0.4, the module depending on 1.0.2 would be inconsistent in your own repository (depending on a version you don't have installed). Thus developers using this module directly would run into a problem.<br class="xooki-br"/><br class="xooki-br"/>If you now have a closer look at your repository, you will probably notice that it isn't an exact replication of the original one. Let's have a look at the directory of one module:
+<div class="shell"><pre>
+
+</pre>
+</div>
+
+As you can see there is no pom here (pom is the module metadata format used by maven 2, available on the maven 2 repository). Instead you can see there's an ivy file, which is actually the original hibernate pom converted into an ivy file. So now you have a true Ivy repository with ivy files, where you can use the full power of Ivy if you want to adjust the module metadata (module configurations, fine grain exclusions and transitivity control, per module conflict manager, ...).<br class="xooki-br"/><br class="xooki-br"/>OK, enough for this simple repository installation, the <a href="../../tutorial/build-repository/advanced.html">next tutorial</a> will show how you can deal with more complex cases where your source and destination repositories do not follow the same naming conventions.
+ 		</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" class="footer">
+    <hr />
+    <i>Copyright &#169; 2014 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a>.</i><br />
+    <i>Apache Ivy, Apache Ant, Ivy, Ant, Apache, the Apache Ivy logo, the Apache Ant logo and the Apache feather logo are trademarks of The Apache Software Foundation.</i><br />
+    <i>All other marks mentioned may be trademarks or registered trademarks of their respective owners. </i>
+</div>
+
+</div><!-- body -->
+</body>
+</html>

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/build-repository/basic.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: ant/site/ivy/production/history/2.4.0/tutorial/conf.html
URL: http://svn.apache.org/viewvc/ant/site/ivy/production/history/2.4.0/tutorial/conf.html?rev=1647991&view=auto
==============================================================================
--- ant/site/ivy/production/history/2.4.0/tutorial/conf.html (added)
+++ ant/site/ivy/production/history/2.4.0/tutorial/conf.html Fri Dec 26 16:13:30 2014
@@ -0,0 +1,321 @@
+<!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 Module Configurations | Apache Ivy&#153;</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://www.apache.org/">Apache&#153;</a> &gt; <a href="http://ant.apache.org/">Apache Ant&#153;</a> &gt; <a href="http://ant.apache.org/ivy/">Apache Ivy&#153;</a> &gt; <span class="breadCrumb"><a href="../index.html" >Documentation (2.4.0)</a> &gt; <a href="../tutorial.html" >Tutorials</a> &gt; <a href="../tutorial/conf.html" class="current">Using Ivy Module Configurations</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>Apache Ivy&#153;</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview">
+<li id="xooki-index" class="submenu"><a href="../index.html" >Documentation (2.4.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="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" >Using Ivy in multiple projects environment</a></li>
+<li id="xooki-tutorial/conf"><a href="../tutorial/conf.html" class="current">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 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-compatibility"><a href="../compatibility.html" >Compatibility</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 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/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 resolver</a></li>
+<li id="xooki-resolver/jar"><a href="../resolver/jar.html" >Jar resolver</a></li>
+<li id="xooki-resolver/obr"><a href="../resolver/obr.html" >OSGi Bundle Repository</a></li>
+<li id="xooki-resolver/osgiagg"><a href="../resolver/osgiagg.html" >Aggregated OSGi Repository</a></li>
+<li id="xooki-resolver/updatesite"><a href="../resolver/updatesite.html" >Eclipse updatesite</a></li>
+<li id="xooki-resolver/mirrored"><a href="../resolver/mirrored.html" >Mirrored Resolver</a></li>
+<li id="xooki-resolver/bintray"><a href="../resolver/bintray.html" >Bintray Resolver</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/signers"><a href="../settings/signers.html" >signers</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" >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.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/buildobr"><a href="../use/buildobr.html" >buildobr</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/checkdepsupdate"><a href="../use/checkdepsupdate.html" >checkdepsupdate</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/convertmanifest"><a href="../use/convertmanifest.html" >convertmanifest</a></li>
+<li id="xooki-use/convertpom"><a href="../use/convertpom.html" >convertpom</a></li>
+<li id="xooki-use/deliver"><a href="../use/deliver.html" >deliver</a></li>
+<li id="xooki-use/dependencytree"><a href="../use/dependencytree.html" >dependencytree</a></li>
+<li id="xooki-use/findrevision"><a href="../use/findrevision.html" >findrevision</a></li>
+<li id="xooki-use/fixdeps"><a href="../use/fixdeps.html" >fixdeps</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/resources"><a href="../use/resources.html" >resources</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>
+<li id="xooki-osgi" class="submenu"><a href="../osgi.html" >OSGi</a><ul class="closed"><li id="xooki-osgi/osgi-mapping"><a href="../osgi/osgi-mapping.html" >OSGi mapping</a></li>
+<li id="xooki-osgi/eclipse-plugin"><a href="../osgi/eclipse-plugin.html" >Building an Eclipse plugin</a></li>
+<li id="xooki-osgi/standard-osgi"><a href="../osgi/standard-osgi.html" >Building a standard OSGi bundle</a></li>
+<li id="xooki-osgi/target-platform"><a href="../osgi/target-platform.html" >Managing a target platform</a></li>
+<li id="xooki-osgi/sigil"><a href="../osgi/sigil.html" >Apache Felix Sigil</a></li>
+</ul></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>
+</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 Module Configurations</h1>
+            <br class="xooki-br"/>This tutorial introduces the use of module configurations in ivy files. Ivy module configurations are indeed a very important concept. Someone even told me one day that using Ivy without using configurations is like eating a good cheese without touching the glass of Chateau Margaux 1976 you have just poured :-)<br class="xooki-br"/><br class="xooki-br"/>More seriously, configurations in Ivy can be better understood as views on your module, and you will see how they can be used effectively here.<br class="xooki-br"/><br class="xooki-br"/>Reference documentation on configurations can be found <a href="../terminology.html">here</a> and <a href="../ivyfile/configurations.html">here</a>.<br class="xooki-br"/><h1>Introduction</h1>
+Source code is available in <tt>src/example/configurations/multi-projects</tt>.<br class="xooki-br"/>We have two projects :<br class="xooki-br"/>  - filter-framework is a library that defines an api to filter String arrays and two implementations of this api.<br class="xooki-br"/>  - myapp is a very small app that uses filter-framework.<br class="xooki-br"/>  <br class="xooki-br"/>The filter-framework library project produces 3 artifacts:<br class="xooki-br"/>  - the api jar,<br class="xooki-br"/>  - an implementation jar with no external dependencies,<br class="xooki-br"/>  - a second implementation jar that needs commons-collections to perform.<br class="xooki-br"/><br class="xooki-br"/>The application only needs the api jar to compile and can use either of the two implementations at runtime.<br class="xooki-br"/><br class="xooki-br"/><h1>The library project</h1>
+The first project we'll look at in this tutorial is filter-framework. In order to have a fine-grained artifacts publication definition, we defined several configurations, each which maps to a set of artifacts that other projects can make use of.<br class="xooki-br"/><h2>The ivy.xml file</h2>
+
+<div class="ivy-file">
+<pre>
+&lt;ivy-module version="1.0"&gt;<br class="xooki-br"/>    &lt;info organisation="org.apache" module="filter-framework"/&gt;<br class="xooki-br"/>    &lt;configurations&gt;<br class="xooki-br"/>    	&lt;conf name="api"  description="only provide filter framework API"/&gt;<br class="xooki-br"/>    	&lt;conf name="homemade-impl" extends="api" description="provide a home made implementation of our api"/&gt;<br class="xooki-br"/>    	&lt;conf name="cc-impl" extends="api" description="provide an implementation that use apache common collection framework"/&gt;<br class="xooki-br"/>    	&lt;conf name="test" extends="cc-impl" visibility="private" description="for testing our framework"/&gt;<br class="xooki-br"/>    &lt;/configurations&gt;<br class="xooki-br"/>    &lt;publications&gt;<br class="xooki-br"/>    	&lt;artifact name="filter-api" type="jar"  conf="api" ext="jar"/&gt;<br class="xooki-br"/>    	&lt;artifact name="filter-hmimpl" type="jar"  conf="homemade-impl" ext="jar"/&gt;<br class
 ="xooki-br"/>    	&lt;artifact name="filter-ccimpl" type="jar"  conf="cc-impl" ext="jar"/&gt;    	<br class="xooki-br"/>    &lt;/publications&gt;<br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>        &lt;dependency org="commons-collections" name="commons-collections" rev="3.1" conf="cc-impl-&gt;default"/&gt;<br class="xooki-br"/>        &lt;dependency org="junit" name="junit" rev="3.8" conf="test-&gt;default"/&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre> 
+</div>
+<h2>Explanation</h2>
+As you can see, we defined 4 configurations, with 3 being public and 1 private. (the  junit dependency for testing).<br class="xooki-br"/>The 2 implementation configurations, <b>homemade-impl</b> and <b>cc-impl</b> extend the <b>api</b> configuration so that all artifacts defined in <b>api</b> will also be part of the extending configuration.<br class="xooki-br"/><br class="xooki-br"/>In the publications tag, we defined the artifacts we produce (jars in this case) and we assign them to a configuration. When others use our library they will have a flexible way to ask for what they need.<br class="xooki-br"/><br class="xooki-br"/><h2>See it in action</h2>
+The filter-framework project is built using Ant. Open a shell in the root directory of the project and type <tt>ant</tt>.
+<div class="shell"><pre>
+
+</pre></div>
+The Ant default target is publish. This target uses Ivy to publish our library binaries to a local repository. Since we do not specify any repository path, the default one is used. (<tt>${home.dir}/.ivy2/local/org.apache/filter-framework/</tt>) At this point, we are ready to use our library.<br class="xooki-br"/><br class="xooki-br"/><h1>The application project</h1>
+
+Now that we have shipped (published) our fantastic filter library, we want to use it! The tutorial comes with a sample application called myapp.<br class="xooki-br"/><h2>The <tt>ivy.xml</tt> file</h2>
+
+<div class="ivy-file">
+<pre>
+&lt;ivy-module version="1.0"&gt;<br class="xooki-br"/>    &lt;info organisation="org.apache" module="myapp"/&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;configurations&gt;<br class="xooki-br"/>       	&lt;conf name="build" visibility="private" description="compilation only need api jar" /&gt;<br class="xooki-br"/>    	&lt;conf name="noexternaljar" description="use only company jar" /&gt;<br class="xooki-br"/>    	&lt;conf name="withexternaljar" description="use company jar and third party jars" /&gt;    <br class="xooki-br"/>    &lt;/configurations&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>        &lt;dependency org="org.apache" name="filter-framework" rev="latest.integration" conf="build-&gt;api; noexternaljar-&gt;homemade-impl; withexternaljar-&gt;cc-impl"/&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre> 
+</div>
+<h2>Explanation</h2>
+We create 3 configurations that define the different ways we want to use the application. The <b>build</b> configuration defines the compile-time dependencies, and thus only needs the api conf from the filter-framework project. The other two configurations define runtime dependencies. One will only use our "home-made" jar, and the other will use an external jar.<br class="xooki-br"/><br class="xooki-br"/>We also defined a dependency on our previously built library. In this dependency, we use configuration mappings to match ours with the dependency's configurations. You can find more information about configuration mapping <a href="../ivyfile/configurations.html">here</a><br class="xooki-br"/><ol>
+  <li><b>build->api</b> : here we tell Ivy that our <b>build</b> configuration depends on the <b>api</b> configuration of the dependency</li>
+  <li><b>noexternaljar->homemade-impl</b> : here we tell Ivy that our <b>noexternaljar</b> configuration depends on the <b>homemade-impl</b> configuration of the dependency.</li>
+  <li><b>withexternaljar->cc-impl</b> : here we tell Ivy that our <b>withexternaljar</b> configuration depends on the <b>cc-impl</b> configuration of the dependency</li>
+</ol>
+Note that we never declare any of the dependency's artifacts we need in each configuration: it's the dependency module's ivy file which declares the published artifacts and which should be used in each configuration.<br class="xooki-br"/><br class="xooki-br"/>In the Ant <tt>build.xml</tt> file, we defined a 'resolve' target as follow:<br class="xooki-br"/>
+<pre>
+&lt;target name="resolve" description="--&gt; retreive dependencies with ivy"&gt;<br class="xooki-br"/>    &lt;ivy:retrieve pattern="${ivy.lib.dir}/[conf]/[artifact].[ext]"/&gt;<br class="xooki-br"/>&lt;/target&gt;    
+</pre> 
+
+When we call this target, Ivy will do a resolve using our <tt>ivy.xml</tt> file in the root folder and then retrieve all the artifacts. The artifacts retrieved are kept in separate folders according to the configurations they belong to. Here is how your lib directory should look after a call to this target:
+<div class="shell"><pre>
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          build<br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          noexternaljar<br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          withexternaljar<br class="xooki-br"/>               0 fichier(s)                0 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\build<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>               1 fichier(s)            1,174 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\noexternaljar<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,030 filter-hmimpl.jar<br class="xoo
 ki-br"/>               2 fichier(s)            2,204 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\withexternaljar<br class="xooki-br"/>01/24/2006  10:53 AM           559,366 commons-collections.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,626 filter-ccimpl.jar<br class="xooki-br"/>               3 fichier(s)          562,166 octets
+</pre></div>
+As you can see, for each configuration we have now a set of jars.<br class="xooki-br"/><br class="xooki-br"/>Let's try to launch our app.<br class="xooki-br"/><br class="xooki-br"/><h2>See it in action</h2>
+Use Ant to run the application. The default Ant target is <i>run-cc</i> and will launch the application using the Apache commons-collections implementation.
+<div class="shell"><pre>
+
+</pre></div>
+Launching the application using the homemade implementation is also straightforward.<br class="xooki-br"/>type <tt>ant run-hm</tt>
+
+<div class="shell"><pre>
+</pre></div>
+Nice! We got the same result, but we can see that the implementation classes are different.<br class="xooki-br"/><br class="xooki-br"/><h1>Conclusion</h1>
+<b>You should use configurations as often as possible.</b> Configurations are a very important concept in Ivy. They allow you to group artifacts and give the group a meaning. When you write ivy files for projects that are intended for use by others, use configurations to allow people to get only what they need, without having to specify them one by one in their own dependency list. <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" class="footer">
+    <hr />
+    <i>Copyright &#169; 2014 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a>.</i><br />
+    <i>Apache Ivy, Apache Ant, Ivy, Ant, Apache, the Apache Ivy logo, the Apache Ant logo and the Apache feather logo are trademarks of The Apache Software Foundation.</i><br />
+    <i>All other marks mentioned may be trademarks or registered trademarks of their respective owners. </i>
+</div>
+
+</div><!-- body -->
+</body>
+</html>

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/conf.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/conf.html
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/site/ivy/production/history/2.4.0/tutorial/conf.html
------------------------------------------------------------------------------
    svn:mime-type = text/html