Author: xavier
Date: Wed Nov 28 04:33:44 2007
New Revision: 598983

URL: http://svn.apache.org/viewvc?rev=598983&view=rev
Log:
review multi-project tutorial (IVY-591)

Added:
    incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt   
(with props)
    incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt   
(with props)
    
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt  
 (with props)
Removed:
    incubator/ivy/core/trunk/doc/samples/multi-project/
Modified:
    incubator/ivy/core/trunk/doc/tutorial/multiproject.html

Added: incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt?rev=598983&view=auto
==============================================================================
--- incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt 
(added)
+++ incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt Wed 
Nov 28 04:33:44 2007
@@ -0,0 +1,16 @@
+Buildfile: 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
\ No newline at end of file

Propchange: 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-find-antp.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt?rev=598983&view=auto
==============================================================================
--- incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt 
(added)
+++ incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt 
Wed Nov 28 04:33:44 2007
@@ -0,0 +1,7 @@
+Buildfile: 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
\ No newline at end of file

Propchange: 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-antp.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt?rev=598983&view=auto
==============================================================================
--- 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt 
(added)
+++ 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt 
Wed Nov 28 04:33:44 2007
@@ -0,0 +1,338 @@
+Buildfile: build.xml
+
+load-ivy:
+
+buildlist:
+[ivy:buildlist] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:buildlist] No ivy:settings found for the default reference 
'ivy.instance'.  A default instance will be used
+[ivy:buildlist] no settings file found, using default...
+[ivy:buildlist] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+publish-all:
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version\lib
+[ivy:resolve] :: resolving dependencies :: 
org.apache.ivy.example#version;[EMAIL PROTECTED]
+[ivy:resolve]   confs: [default]
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |      default     |   0   |   0   |   0   |   0   ||   0   |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#version
+[ivy:retrieve]  confs: [default]
+[ivy:retrieve]  0 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 1 source file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version\build\classes
+    [javac] Note: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version\src\version\Version.java
 uses unchecked or unsafe operations.
+    [javac] Note: Recompile with -Xlint:unchecked for details.
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version\build\version.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#version;[EMAIL 
PROTECTED] :: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:13 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#version
+[ivy:publish]   published version to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version/../../common/../repository/shared/org.apache.ivy.example/version/1.0-dev-b1/jars/version.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\version/../../common/../repository/shared/org.apache.ivy.example/version/1.0-dev-b1/ivys/ivy.xml
+     [echo] project version released with version 1.0-dev-b1
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list\lib
+[ivy:resolve] :: resolving dependencies :: org.apache.ivy.example#list;[EMAIL 
PROTECTED]
+[ivy:resolve]   confs: [core, standalone]
+[ivy:resolve]   found org.apache.ivy.example#version;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#version;latest.integration
+[ivy:resolve]   found commons-cli#commons-cli;1.0 in public
+[ivy:resolve]   found commons-logging#commons-logging;1.0 in public
+[ivy:resolve]   found commons-lang#commons-lang;1.0 in public
+[ivy:resolve]   found junit#junit;3.7 in public
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |       core       |   1   |   1   |   0   |   0   ||   1   |   0   |
+        |    standalone    |   5   |   1   |   0   |   0   ||   5   |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#list
+[ivy:retrieve]  confs: [core, standalone]
+[ivy:retrieve]  5 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 2 source files to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list\build\classes
+    [javac] Note: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list\src\list\ListFile.java
 uses unchecked or unsafe operations.
+    [javac] Note: Recompile with -Xlint:unchecked for details.
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list\build\list.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#list;[EMAIL PROTECTED] 
:: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:16 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#list
+[ivy:publish]   published list to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list/../../common/../repository/shared/org.apache.ivy.example/list/1.0-dev-b1/jars/list.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\list/../../common/../repository/shared/org.apache.ivy.example/list/1.0-dev-b1/ivys/ivy.xml
+     [echo] project list released with version 1.0-dev-b1
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find\lib
+[ivy:resolve] :: resolving dependencies :: org.apache.ivy.example#find;[EMAIL 
PROTECTED]
+[ivy:resolve]   confs: [core, standalone]
+[ivy:resolve]   found org.apache.ivy.example#version;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#version;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#list;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#list;latest.integration
+[ivy:resolve]   found commons-collections#commons-collections;3.1 in public
+[ivy:resolve]   found commons-cli#commons-cli;1.0 in public
+[ivy:resolve]   found commons-logging#commons-logging;1.0 in public
+[ivy:resolve]   found commons-lang#commons-lang;1.0 in public
+[ivy:resolve]   found junit#junit;3.7 in public
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |       core       |   3   |   2   |   0   |   0   ||   3   |   0   |
+        |    standalone    |   7   |   2   |   0   |   0   ||   7   |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#find
+[ivy:retrieve]  confs: [core, standalone]
+[ivy:retrieve]  7 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 2 source files to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find\build\classes
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find\build\find.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#find;[EMAIL PROTECTED] 
:: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:18 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#find
+[ivy:publish]   published find to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find/../../common/../repository/shared/org.apache.ivy.example/find/1.0-dev-b1/jars/find.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\find/../../common/../repository/shared/org.apache.ivy.example/find/1.0-dev-b1/ivys/ivy.xml
+     [echo] project find released with version 1.0-dev-b1
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size\lib
+[ivy:resolve] :: resolving dependencies :: org.apache.ivy.example#size;[EMAIL 
PROTECTED]
+[ivy:resolve]   confs: [default]
+[ivy:resolve]   found org.apache.ivy.example#version;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#version;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#list;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#list;latest.integration
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |      default     |   2   |   2   |   0   |   0   ||   2   |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#size
+[ivy:retrieve]  confs: [default]
+[ivy:retrieve]  2 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 1 source file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size\build\classes
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size\build\size.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#size;[EMAIL PROTECTED] 
:: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:21 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#size
+[ivy:publish]   published size to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size/../../common/../repository/shared/org.apache.ivy.example/size/1.0-dev-b1/jars/size.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\size/../../common/../repository/shared/org.apache.ivy.example/size/1.0-dev-b1/ivys/ivy.xml
+     [echo] project size released with version 1.0-dev-b1
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere\lib
+[ivy:resolve] :: resolving dependencies :: 
org.apache.ivy.example#sizewhere;[EMAIL PROTECTED]
+[ivy:resolve]   confs: [core, standalone]
+[ivy:resolve]   found org.apache.ivy.example#version;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#version;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#size;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#size;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#list;1.0-dev-b1 in shared
+[ivy:resolve]   found org.apache.ivy.example#find;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#find;latest.integration
+[ivy:resolve]   found commons-collections#commons-collections;3.1 in public
+[ivy:resolve]   found commons-cli#commons-cli;1.0 in public
+[ivy:resolve]   found commons-logging#commons-logging;1.0 in public
+[ivy:resolve]   found commons-lang#commons-lang;1.0 in public
+[ivy:resolve]   found junit#junit;3.7 in public
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |       core       |   5   |   3   |   0   |   0   ||   5   |   0   |
+        |    standalone    |   9   |   3   |   0   |   0   ||   9   |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#sizewhere
+[ivy:retrieve]  confs: [core, standalone]
+[ivy:retrieve]  9 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 2 source files to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere\build\classes
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere\build\sizewhere.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#sizewhere;[EMAIL 
PROTECTED] :: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:24 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#sizewhere
+[ivy:publish]   published sizewhere to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere/../../common/../repository/shared/org.apache.ivy.example/sizewhere/1.0-dev-b1/jars/sizewhere.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\sizewhere/../../common/../repository/shared/org.apache.ivy.example/sizewhere/1.0-dev-b1/ivys/ivy.xml
+     [echo] project sizewhere released with version 1.0-dev-b1
+
+clean-build:
+
+load-ivy:
+
+ivy-new-version:
+ [ivy:info] :: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+ [ivy:info] No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
+ [ivy:info] no settings file found, using default...
+ [ivy:info] :: Ivy 2.0.0-beta1-local-20071128121716 - 20071128121716 :: 
http://ant.apache.org/ivy/ ::
+:: loading settings :: url = 
jar:file:/D:/Users/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+
+version:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console\build\classes
+
+clean-lib:
+
+resolve:
+    [mkdir] Created dir: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console\lib
+[ivy:resolve] :: resolving dependencies :: 
org.apache.ivy.example#console;[EMAIL PROTECTED]
+[ivy:resolve]   confs: [default]
+[ivy:resolve]   found org.apache.ivy.example#version;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#version;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#list;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#list;latest.integration
+[ivy:resolve]   found commons-cli#commons-cli;1.0 in public
+[ivy:resolve]   found commons-logging#commons-logging;1.0 in public
+[ivy:resolve]   found commons-lang#commons-lang;1.0 in public
+[ivy:resolve]   found junit#junit;3.7 in public
+[ivy:resolve]   found org.apache.ivy.example#find;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] org.apache.ivy.example#find;latest.integration
+[ivy:resolve]   found commons-collections#commons-collections;3.1 in public
+[ivy:resolve]   found org.apache.ivy.example#sizewhere;1.0-dev-b1 in shared
+[ivy:resolve]   [1.0-dev-b1] 
org.apache.ivy.example#sizewhere;latest.integration
+[ivy:resolve]   found org.apache.ivy.example#size;1.0-dev-b1 in shared
+[ivy:resolve] :: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |      default     |   10  |   4   |   0   |   0   ||   10  |   0   |
+        ---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache.ivy.example#console
+[ivy:retrieve]  confs: [default]
+[ivy:retrieve]  10 artifacts copied, 0 already retrieved
+
+compile:
+    [javac] Compiling 1 source file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console\build\classes
+    [javac] Note: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console\src\console\Main.java
 uses unchecked or unsafe operations.
+    [javac] Note: Recompile with -Xlint:unchecked for details.
+
+jar:
+      [jar] Building jar: 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console\build\console.jar
+
+publish:
+[ivy:publish] :: delivering :: org.apache.ivy.example#console;[EMAIL 
PROTECTED] :: 1.0-dev-b1 :: release :: Wed Nov 28 13:10:27 CET 2007
+[ivy:publish]   delivering ivy file to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console/build/ivy.xml
+[ivy:publish] :: publishing :: org.apache.ivy.example#console
+[ivy:publish]   published console to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console/../../common/../repository/shared/org.apache.ivy.example/console/1.0-dev-b1/jars/console.jar
+[ivy:publish]   published ivy to 
D:\users\xavier\documents\wkspace\apache\ivy\core\trunk\src\example\multi-project\projects\console/../../common/../repository/shared/org.apache.ivy.example/console/1.0-dev-b1/ivys/ivy.xml
+     [echo] project console released with version 1.0-dev-b1
+
+BUILD SUCCESSFUL
\ No newline at end of file

Propchange: 
incubator/ivy/core/trunk/doc/tutorial/log/multi-project-general-publishall.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/ivy/core/trunk/doc/tutorial/multiproject.html
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/tutorial/multiproject.html?rev=598983&r1=598982&r2=598983&view=diff
==============================================================================
--- incubator/ivy/core/trunk/doc/tutorial/multiproject.html (original)
+++ incubator/ivy/core/trunk/doc/tutorial/multiproject.html Wed Nov 28 04:33:44 
2007
@@ -25,11 +25,9 @@
 </head>
 <body>
        <textarea id="xooki-source">
-<strong>Warning: tutorial in progress !</strong>
-
 In the previous tutorial you have seen how to deal with dependencies between 
two simple projects.
 
-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 (warning: the sources attached 
with ivy 1.3 contain an error in the common.xml file. Please use either latest 
build to find proper example sources or replace the common.xml file with <a 
href="../samples/multi-project/common.xml">this one</a>).
+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.
 
 <h1>Context</h1>
 Here is a 10000ft overview of the projects involved in this tutorial:
@@ -43,10 +41,10 @@
 </ul>
 For sure this is not aimed to demonstrate how to develop a complex app or give 
indication of advanced algorithm :-)
 
-But this gives a simple understanding of how ivy can be used to develop an 
application divided in multiple modules.
+But this gives a simple understanding of how Ant+Ivy can be used to develop an 
application divided in multiple modules.
 
 Now, here is how these modules relate to each other:
-<a href="../samples/projects-dependencies-graph.jpg"><img 
src="../samples/projects-dependencies-graph-small.jpg" alt="dependencies 
graph"/><br/><center><i>click to enlarge</i></center></a>
+<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).
 
@@ -55,11 +53,11 @@
 <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="../samples/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>[[svn:src/example/multi-project/build.xml build.xml]]</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="../samples/multi-project/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>build.properties</li>some properties common to all projects
+<li>[[svn:src/example//multi-project/common/common.xml common.xml]]</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>[[svn:src/example//multi-project/common/build.properties 
build.properties]]</li>some properties common to all projects
 </ul>
 </li>
 <li>projects</li>
@@ -70,7 +68,7 @@
 <code type="xml">
 <ivy-module version="1.0">
     <info 
-        organisation="jayasoft"
+        organisation="org.apache.ivy.example"
         module="find"
         status="integration"/>
     <configurations>
@@ -83,8 +81,8 @@
     <dependencies>
       <dependency name="version" rev="latest.integration" conf="core->default" 
/>
       <dependency name="list" rev="latest.integration" conf="core" />
-      <dependency org="apache" name="commons-collections" rev="3.1" 
conf="core->default" />
-      <dependency org="apache" name="commons-cli" rev="1.0" 
conf="standalone->default" />
+      <dependency org="commons-collections" name="commons-collections" 
rev="3.1" conf="core->default" />
+      <dependency org="commons-cli" name="commons-cli" rev="1.0" 
conf="standalone->default" />
     </dependencies>
 </ivy-module>
 </code>
@@ -106,72 +104,85 @@
 </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 this samples, even if we 
think unit testing is very important. But this isn't the aim of this tutorial.
+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.
 
-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 (with which you should begin to 
be familiar).
+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).
 
 So, here are some aspects of this common build file:
 <h2>ivy settings</h2>
 <code type="xml">
+<!-- setup ivy default configuration with some custom info -->
+<property name="ivy.local.default.root" value="${repository.dir}/local"/>
+<property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
 
-    <!-- setup ivy default configuration with some custom info -->
-    <property name="ivy.local.default.root" value="${repository.dir}/local"/>
-    <property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
-
-    <!-- here is how we would have configured ivy if we had our own 
ivysettings file
-       <ivy:settings file="${common.dir}/ivysettings.xml" />
-    -->
-</target>
+<!-- here is how we would have configured ivy if we had our own ivysettings 
file
+<ivy:settings file="${common.dir}/ivysettings.xml" id="ivy.instance" />
+-->
 </code>
 
-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 1.3 is configured by default to work in a 
team environment (see [[tutorial/defaultconf default settings tutorial]] 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).
-There is only in comments how the settings would have been done if the default 
settings wasn't ok for our purpose.
+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 [[tutorial/defaultconf default settings tutorial]] 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).
+Commented out you can see how the settings would have been done if the default 
settings wasn't ok for our purpose.
 
 <h2>resolve dependencies</h2>
 <code type="xml">
-<target name="resolve" depends="clean-lib" description="--> retrieve 
dependencies with ivy">
+<target name="resolve" depends="clean-lib, load-ivy" description="--> resolve 
and retrieve dependencies with ivy">
     <mkdir dir="${lib.dir}"/> <!-- not usually necessary, ivy creates the 
directory IF there are dependencies -->
-    <!-- this target is named resolve even if we do a retrieve: 
-         in fact a resolve will be called, and then the retrieve will simply 
copy files in the lib directory -->
+    
+    <!-- the call to resolve is not mandatory, retrieve makes an implicit call 
if we don't -->
+    <ivy:resolve file="${ivy.file}"/>
     <ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" />
 </target>
 </code>
-Here we see that we only call a retrieve task, the resolve being done 
automatically with default parameters (which are ok in our case). So here 
nothing special, we simply use ivy to retrieve dependencies in the lib 
directory, putting artifacts without revision in their names (it's easier to 
use with an ide, for instance).
+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.
+
+<h2>ivy-new-version</h2>
+<code type="xml">
+<target name="ivy-new-version" depends="load-ivy" unless="ivy.new.revision">
+    <!-- default module version prefix value -->
+    <property name="module.version.prefix" 
value="${module.version.target}-dev-b" />
+    
+    <!-- asks to ivy an available version number -->
+    <ivy:info file="${ivy.file}" />
+    <ivy:buildnumber 
+        organisation="${ivy.organisation}" module="${ivy.module}" 
+        revision="${module.version.prefix}" defaultBuildNumber="1" revSep=""/>
+</target>
+</code>
+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 [[ant:buildnumber]] 
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.
 
 <h2>publish</h2>
 <code type="xml">
-<target name="publish" depends="clean-build, new-version, jar" 
description="--> publish this project in the ivy repository">
-    <property name="revision" value="${version}"/>
+<target name="publish" depends="clean-build, jar" description="--> publish 
this project in the ivy repository">
     <ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-        resolver="shared"
-        pubrevision="${revision}" 
-        status="release"
-       />
-    <echo message="project ${ant.project.name} released with version 
${revision}" />
+                       resolver="shared"
+                       pubrevision="${version}" 
+                       status="release"
+    />
+    <echo message="project ${ant.project.name} released with version 
${version}" />
 </target>
 </code>
-This target let publish the module in the shared repository, with the revision 
found in the version property, which is set by other targets. It can be used 
when a module reaches a specific milestone, or whenever you want the teeam to 
benefit from a new version of the module.
+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.
 <h2>publish-local</h2>
 <code type="xml">
 <target name="publish-local" depends="local-version, jar" description="--> 
publish this project in the local ivy repository">
-    <delete file="${build.dir}/ivy.xml"/> <!-- delete last produced ivy file 
to be sure a new one will be generated -->
     <ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
-        resolver="local"
-        pubrevision="${revision}"
-        pubdate="${now}"
-        status="integration"
-       />
-    <echo message="project ${ant.project.name} published locally with version 
${revision}" />
+                    resolver="local"
+                    pubrevision="${version}"
+                    pubdate="${now}"
+                    status="integration"
+                    forcedeliver="true"
+    />
+    <echo message="project ${ant.project.name} published locally with version 
${version}" />
 </target>
 </code>
 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.
 <h2>clean-local</h2>
 <code type="xml">
-<target name="clean-local" depends="configure" description="cleans the local 
repository for the current module">
-    <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
+<target name="clean-local" description="--> cleans the local repository for 
the current module">
+   <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
 </target>
 </code>
-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.
+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.
 <h2>report</h2>
 <code type="xml">
 <target name="report" depends="resolve" description="--> generates a report of 
dependencies">
@@ -180,8 +191,26 @@
 </code>
 Generates both an html report and a graphml report.
 
-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 
<code>projects/console/build/</code> after having called report in the console 
project, and that's it, you have a clear overview of all your app dependencies !
-       </textarea>
+For example, to generate a graph like the one shown at the beginning of this 
tutorial, you just have to follow the instructions given [[yed here]] with the 
graphml file you will find in <code>projects/console/build/</code> after having 
called report in the console project, and that's it, you have a clear overview 
of all your app dependencies !
+
+<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>
+[<tutorial/log/multi-project-general-antp.txt>]
+</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>).
+
+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.
+
+Then you can go in one of the example project directory (like projects/find 
for instance), and run ant -p:
+<div class="shell"><pre>
+[<tutorial/log/multi-project-find-antp.txt>]
+</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!
+
+You should then be pretty familiar with multi project development with Ivy, we 
hope you will appreciate its power and flexibility! And those tutorials are 
only the beginning of your journey with Ivy, browse the [[reference reference 
documentation]] to learn more about the features, subscribe to the 
[[mailing-lists 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!</textarea>
 <script type="text/javascript">xooki.postProcess();</script>
 </body>
 </html>


Reply via email to