在這個步驟中我們使用install任務來從maven2 倉庫安裝模塊到一個基於文件系統的倉庫。我們首先 安裝一個不帶依賴的模塊,然後安裝一個帶有依賴的模塊。
1) 基礎: 使用ivysettings.xml文件
這裡我們使用的ivy設置文件非常簡單。它定義兩個解析器,libraries 和 my-repository. 第一個作 為源使用,第二個作為目的地。在典型的安裝中第二個倉庫將使用包含設置來配置,被這個開發團隊使用 。
<ivysettings>
<settings defaultCache="${ivy.cache.dir}/no-namespace"
defaultResolver="libraries"
defaultConflictManager="all" />
<!-- in order to get all revisions without any eviction -->
<resolvers>
<ibiblio name="libraries" m2compatible="true" />
<filesystem name="my-repository">
<ivy pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/ivys/ivy- [revision].xml"/>
<artifact pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/[type]s/ [artifact]-[revision].[ext]"/>
</filesystem>
</resolvers>
</ivysettings>
2) 安裝不帶依賴的簡單模塊
讓我們看一下maven2 target
<target name="maven2" depends="init-ivy"
description="--> install module from maven 2 repository">
<ivy:install settingsRef="basic.settings"
organisation="commons-lang" module="commons-lang" revision="1.0"
from="${from.resolver}" to="${to.resolver}" />
</target>
很簡單,我們使用和以往一樣用ivy:settings裝載的設置來調用[ant:install] 任務,我們通過使用 屬性提供fromResolver (源) 和 toResolver (目的) 來簡化腳本的維護。我們的解析器主要 是:'libraries' 作為源而'my-repository'作為目的地.
這是ant調用的輸出:
Z:\>ant maven2
Buildfile: build.xml
load-ivy:
init-ivy:
maven2:
[ivy:install] :: loading settings :: url = jar:file://home/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:install] :: Ivy 2.0.0-beta1-local-20071130005044 - 20071130005044 :: http://ant.apache.org/ivy/ ::
:: loading settings :: file = /home/xavier/ivy/settings/ivysettings-advanced.xml
[ivy:install] :: installing commons-lang#commons-lang;1.0 ::
[ivy:install] :: resolving dependencies ::
[ivy:install] found commons-lang#commons-lang;1.0 in libraries
[ivy:install] :: downloading artifacts to cache ::
[ivy:install] downloading http://repo1.maven.org/maven2/commons-lang/commons- lang/1.0/commons-lang-1.0.jar ...
[ivy:install] ............... (62kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] commons-lang#commons-lang;1.0/commons-lang.jar[jar] (2464ms)
[ivy:install] :: installing in my-repository ::
[ivy:install] published commons-lang to /home/xavier/ivy/myrepository/no- namespace/commons-lang/commons-lang/jars/commons-lang-1.0.jar
[ivy:install] published ivy to /home/xavier/ivy/myrepository/no-namespace/commons -lang/commons-lang/ivys/ivy-1.0.xml
[ivy:install] :: install resolution report ::
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 1 | 1 | 0 | 0 || 1 | 1 |
---------------------------------------------------------------------
BUILD SUCCESSFUL
這些日志告訴我們使用"libraries"解析器找到了模塊定義,而對應的制品從maven2 倉庫下載完成。 然後都被發布到文件系統倉庫(my-repository)。
讓我們看一下我們的倉庫:
Z:\>dir /s /B /A:-D myrepository
Z:\myrepository\no-namespace\commons-lang\commons-lang\ivys\ivy-1.0.xml
Z:\myrepository\no-namespace\commons-lang\commons-lang\ivys\ivy-1.0.xml.md5
Z:\myrepository\no-namespace\commons-lang\commons-lang\ivys\ivy-1.0.xml.sha1
Z:\myrepository\no-namespace\commons-lang\commons-lang\jars\commons-lang-1.0.jar
Z:\myrepository\no-namespace\commons-lang\commons-lang\jars\commons-lang-1.0.jar.md5
Z:\myrepository\no-namespace\commons-lang\commons-lang\jars\commons-lang- 1.0.jar.sha1
我們可以看到,現在我們的倉庫中有commons-lang模塊的版本1.0,調用一個生成的ivy.xml文件,它 的jar,和所有md5和sha1檢驗和,為將來開發人員使用這個倉庫來解析模塊進行一致性檢查而准備。
3) 安裝帶有依賴的模塊
現在我們可以說,我們想確認在安裝後我們安裝的模塊的所有的依賴在我們的倉庫中都是可用的。我 們可以或者在一個staging(臨時?分段?)倉庫上不帶依賴的安裝(更多控制),或者使用遞推依賴管理並 要求ivy為我們安裝所有東西(簡單很多)。
調用的target和上面描述的非常相像,除了我們顯式的要求遞推安裝。
<target name="maven2-deps" depends="init-ivy"
description="--> install module from maven 2 repository with dependencies">
<ivy:install settingsRef="basic.settings"
organisation="org.hibernate" module="hibernate" revision="3.2.5.ga"
from="${from.resolver}" to="${to.resolver}" transitive="true" />
</target>
如果你調用這個target,你將看到不僅安裝hibernate 模塊而且也包括它的依賴:
Z:\>ant maven2-deps
Buildfile: build.xml
load-ivy:
init-ivy:
maven2-deps:
[ivy:install] :: loading settings :: url = jar:file://home/xavier/.ivy2/jars/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:install] :: Ivy 2.0.0-beta1-local-20071130005044 - 20071130005044 :: http://ant.apache.org/ivy/ ::
:: loading settings :: file = /home/xavier/ivy/settings/ivysettings-advanced.xml
[ivy:install] :: installing org.hibernate#hibernate;3.2.5.ga ::
[ivy:install] :: resolving dependencies ::
[ivy:install] found org.hibernate#hibernate;3.2.5.ga in libraries
[ivy:install] found net.sf.ehcache#ehcache;1.2.3 in libraries
[ivy:install] found commons-logging#commons-logging;1.0.4 in libraries
[ivy:install] found commons-collections#commons-collections;2.1 in libraries
[ivy:install] found javax.transaction#jta;1.0.1B in libraries
[ivy:install] found asm#asm-attrs;1.5.3 in libraries
[ivy:install] found dom4j#dom4j;1.6.1 in libraries
[ivy:install] found antlr#antlr;2.7.6 in libraries
[ivy:install] found cglib#cglib;2.1_3 in libraries
[ivy:install] found asm#asm;1.5.3 in libraries
[ivy:install] found commons-collections#commons-collections;2.1.1 in libraries
[ivy:install] found ant#ant;1.6.5 in libraries
[ivy:install] found swarmcache#swarmcache;1.0RC2 in libraries
[ivy:install] found commons-logging#commons-logging;1.0.2 in libraries
[ivy:install] found jgroups#jgroups-all;2.2.8 in libraries
[ivy:install] found jboss#jboss-cache;1.2.2 in libraries
[ivy:install] found jboss#jboss-system;4.0.2 in libraries
[ivy:install] found jboss#jboss-common;4.0.2 in libraries
[ivy:install] found slide#webdavlib;2.0 in libraries
[ivy:install] found xerces#xercesImpl;2.6.2 in libraries
[ivy:install] found jboss#jboss-minimal;4.0.2 in libraries
[ivy:install] found jboss#jboss-j2se;200504122039 in libraries
[ivy:install] found concurrent#concurrent;1.3.4 in libraries
[ivy:install] found jgroups#jgroups-all;2.2.7 in libraries
[ivy:install] found c3p0#c3p0;0.9.1 in libraries
[ivy:install] found javax.security#jacc;1.0 in libraries
[ivy:install] found opensymphony#oscache;2.1 in libraries
[ivy:install] found proxool#proxool;0.8.3 in libraries
[ivy:install] :: downloading artifacts to cache ::
[ivy:install] downloading http://repo1.maven.org/maven2/org/hibernate/hibernate/3.2.5.ga/hibernate-3.2.5.ga.jar ...
[ivy:install] ................................................
[ivy:install] ........................ (2202kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] org.hibernate#hibernate;3.2.5.ga/hibernate.jar[jar] (31105ms)
[ivy:install] downloading http://repo1.maven.org/maven2/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar ...
[ivy:install] ........................
[ivy:install] ........................ (203kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] net.sf.ehcache#ehcache;1.2.3/ehcache.jar[jar] (3223ms)
[ivy:install] downloading http://repo1.maven.org/maven2/commons-logging/commons- logging/1.0.4/commons-logging-1.0.4.jar ...
[ivy:install] ........................ (37kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] commons-logging#commons-logging;1.0.4/commons- logging.jar[jar] (1176ms)
[ivy:install] downloading http://repo1.maven.org/maven2/asm/asm-attrs/1.5.3/asm-attrs- 1.5.3.jar ...
[ivy:install] ..... (16kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] asm#asm-attrs;1.5.3/asm-attrs.jar[jar] (872ms)
[ivy:install] downloading http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j- 1.6.1.jar ...
[ivy:install] ................................................
[ivy:install] .. (306kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] dom4j#dom4j;1.6.1/dom4j.jar[jar] (3895ms)
[ivy:install] downloading http://repo1.maven.org/maven2/antlr/antlr/2.7.6/antlr- 2.7.6.jar ...
[ivy:install] ........................
[ivy:install] ........................ (433kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] antlr#antlr;2.7.6/antlr.jar[jar] (6909ms)
[ivy:install] downloading http://repo1.maven.org/maven2/cglib/cglib/2.1_3/cglib- 2.1_3.jar ...
[ivy:install] ........................
[ivy:install] ... (275kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] cglib#cglib;2.1_3/cglib.jar[jar] (4062ms)
[ivy:install] downloading http://repo1.maven.org/maven2/asm/asm/1.5.3/asm-1.5.3.jar ...
[ivy:install] ...... (25kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] asm#asm;1.5.3/asm.jar[jar] (980ms)
[ivy:install] downloading http://repo1.maven.org/maven2/commons-collections/commons- collections/2.1.1/commons-collections-2.1.1.jar ...
[ivy:install] ........................
[ivy:install] ........................ (171kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] commons-collections#commons-collections;2.1.1/commons- collections.jar[jar] (3476ms)
[ivy:install] downloading http://repo1.maven.org/maven2/commons-collections/commons- collections/2.1/commons-collections-2.1.jar ...
[ivy:install] ........................
[ivy:install] ........................ (161kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] commons-collections#commons-collections;2.1/commons- collections.jar[jar] (3931ms)
[ivy:install] downloading http://repo1.maven.org/maven2/ant/ant/1.6.5/ant-1.6.5.jar ...
[ivy:install] ........................
[ivy:install] ........................ (1009kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] ant#ant;1.6.5/ant.jar[jar] (20564ms)
[ivy:install] downloading http://repo1.maven.org/maven2/swarmcache/swarmcache/1.0RC2/swarmcache-1.0RC2.jar ...
[ivy:install] ........................ (29kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] swarmcache#swarmcache;1.0RC2/swarmcache.jar[jar] (1985ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jboss/jboss-cache/1.2.2/jboss- cache-1.2.2.jar ...
[ivy:install] ........................
[ivy:install] .. (365kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jboss#jboss-cache;1.2.2/jboss-cache.jar[jar] (6026ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jgroups/jgroups- all/2.2.8/jgroups-all-2.2.8.jar ...
[ivy:install] ........................
[ivy:install] ........................ (1573kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jgroups#jgroups-all;2.2.8/jgroups-all.jar[jar] (17176ms)
[ivy:install] downloading http://repo1.maven.org/maven2/c3p0/c3p0/0.9.1/c3p0-0.9.1.jar ...
[ivy:install] ................................................
[ivy:install] ................................................ (594kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] c3p0#c3p0;0.9.1/c3p0.jar[jar] (4332ms)
[ivy:install] downloading http://repo1.maven.org/maven2/opensymphony/oscache/2.1/oscache-2.1.jar ...
[ivy:install] ................................................ (111kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] opensymphony#oscache;2.1/oscache.jar[jar] (1676ms)
[ivy:install] downloading http://repo1.maven.org/maven2/proxool/proxool/0.8.3/proxool- 0.8.3.jar ...
[ivy:install] ................................................
[ivy:install] ................................................ (464kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] proxool#proxool;0.8.3/proxool.jar[jar] (3476ms)
[ivy:install] downloading http://repo1.maven.org/maven2/commons-logging/commons- logging/1.0.2/commons-logging-1.0.2.jar ...
[ivy:install] ........................ (25kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] commons-logging#commons-logging;1.0.2/commons- logging.jar[jar] (794ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jboss/jboss-system/4.0.2/jboss- system-4.0.2.jar ...
[ivy:install] ................................................ (227kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jboss#jboss-system;4.0.2/jboss-system.jar[jar] (1937ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jboss/jboss-common/4.0.2/jboss- common-4.0.2.jar ...
[ivy:install] ................................................
[ivy:install] ................................................ (457kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jboss#jboss-common;4.0.2/jboss-common.jar[jar] (3589ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jboss/jboss-minimal/4.0.2/jboss -minimal-4.0.2.jar ...
[ivy:install] ................................................ (163kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jboss#jboss-minimal;4.0.2/jboss-minimal.jar[jar] (1838ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jboss/jboss- j2se/200504122039/jboss-j2se-200504122039.jar ...
[ivy:install] ................................................
[ivy:install] ........................ (350kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jboss#jboss-j2se;200504122039/jboss-j2se.jar[jar] (2806ms)
[ivy:install] downloading http://repo1.maven.org/maven2/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar ...
[ivy:install] ................................................ (184kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] concurrent#concurrent;1.3.4/concurrent.jar[jar] (1748ms)
[ivy:install] downloading http://repo1.maven.org/maven2/jgroups/jgroups- all/2.2.7/jgroups-all-2.2.7.jar ...
[ivy:install] ................................................
[ivy:install] ................................................ (1613kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] jgroups#jgroups-all;2.2.7/jgroups-all.jar[jar] (10938ms)
[ivy:install] downloading http://repo1.maven.org/maven2/slide/webdavlib/2.0/webdavlib- 2.0.jar ...
[ivy:install] ................................................ (128kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] slide#webdavlib;2.0/webdavlib.jar[jar] (1526ms)
[ivy:install] downloading http://repo1.maven.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar ...
[ivy:install] ................................................
[ivy:install] ........................ (986kB)
[ivy:install] .. (0kB)
[ivy:install] [SUCCESSFUL ] xerces#xercesImpl;2.6.2/xercesImpl.jar[jar] (6906ms)
[ivy:install] :: installing in my-repository ::
[ivy:install] published hibernate to myrepository/no- namespace/org.hibernate/hibernate/jars/hibernate-3.2.5.ga.jar
[ivy:install] published ivy to myrepository/no- namespace/org.hibernate/hibernate/ivys/ivy-3.2.5.ga.xml
[ivy:install] published ehcache to myrepository/no- namespace/net.sf.ehcache/ehcache/jars/ehcache-1.2.3.jar
[ivy:install] published ivy to myrepository/no- namespace/net.sf.ehcache/ehcache/ivys/ivy-1.2.3.xml
[ivy:install] missing artifact javax.transaction#jta;1.0.1B/jta.jar[jar]:
[ivy:install] cache/no-namespace/javax.transaction/jta/jars/jta-1.0.1B.jar file does not exist
[ivy:install] published ivy to myrepository/no- namespace/javax.transaction/jta/ivys/ivy-1.0.1B.xml
[ivy:install] published commons-logging to myrepository/no-namespace/commons- logging/commons-logging/jars/commons-logging-1.0.4.jar
[ivy:install] published ivy to myrepository/no-namespace/commons-logging/commons- logging/ivys/ivy-1.0.4.xml
[ivy:install] published asm-attrs to myrepository/no-namespace/asm/asm- attrs/jars/asm-attrs-1.5.3.jar
[ivy:install] published ivy to myrepository/no-namespace/asm/asm-attrs/ivys/ivy- 1.5.3.xml
[ivy:install] published dom4j to myrepository/no-namespace/dom4j/dom4j/jars/dom4j -1.6.1.jar
[ivy:install] published ivy to myrepository/no-namespace/dom4j/dom4j/ivys/ivy- 1.6.1.xml
[ivy:install] published antlr to myrepository/no-namespace/antlr/antlr/jars/antlr -2.7.6.jar
[ivy:install] published ivy to myrepository/no-namespace/antlr/antlr/ivys/ivy- 2.7.6.xml
[ivy:install] published cglib to myrepository/no-namespace/cglib/cglib/jars/cglib -2.1_3.jar
[ivy:install] published ivy to myrepository/no-namespace/cglib/cglib/ivys/ivy- 2.1_3.xml
[ivy:install] published asm to myrepository/no-namespace/asm/asm/jars/asm- 1.5.3.jar
[ivy:install] published ivy to myrepository/no-namespace/asm/asm/ivys/ivy- 1.5.3.xml
[ivy:install] published commons-collections to myrepository/no-namespace/commons- collections/commons-collections/jars/commons-collections-2.1.1.jar
[ivy:install] published ivy to myrepository/no-namespace/commons- collections/commons-collections/ivys/ivy-2.1.1.xml
[ivy:install] published commons-collections to myrepository/no-namespace/commons- collections/commons-collections/jars/commons-collections-2.1.jar
[ivy:install] published ivy to myrepository/no-namespace/commons- collections/commons-collections/ivys/ivy-2.1.xml
[ivy:install] published ant to myrepository/no-namespace/ant/ant/jars/ant- 1.6.5.jar
[ivy:install] published ivy to myrepository/no-namespace/ant/ant/ivys/ivy- 1.6.5.xml
[ivy:install] published swarmcache to myrepository/no- namespace/swarmcache/swarmcache/jars/swarmcache-1.0RC2.jar
[ivy:install] published ivy to myrepository/no- namespace/swarmcache/swarmcache/ivys/ivy-1.0RC2.xml
[ivy:install] published jboss-cache to myrepository/no-namespace/jboss/jboss- cache/jars/jboss-cache-1.2.2.jar
[ivy:install] published ivy to myrepository/no-namespace/jboss/jboss- cache/ivys/ivy-1.2.2.xml
[ivy:install] published jgroups-all to myrepository/no-namespace/jgroups/jgroups- all/jars/jgroups-all-2.2.8.jar
[ivy:install] published ivy to myrepository/no-namespace/jgroups/jgroups- all/ivys/ivy-2.2.8.xml
[ivy:install] published c3p0 to myrepository/no-namespace/c3p0/c3p0/jars/c3p0- 0.9.1.jar
[ivy:install] published ivy to myrepository/no-namespace/c3p0/c3p0/ivys/ivy- 0.9.1.xml
[ivy:install] missing artifact javax.security#jacc;1.0/jacc.jar[jar]:
[ivy:install] cache/no-namespace/javax.security/jacc/jars/jacc-1.0.jar file does not exist
[ivy:install] published ivy to myrepository/no- namespace/javax.security/jacc/ivys/ivy-1.0.xml
[ivy:install] published oscache to myrepository/no- namespace/opensymphony/oscache/jars/oscache-2.1.jar
[ivy:install] published ivy to myrepository/no- namespace/opensymphony/oscache/ivys/ivy-2.1.xml
[ivy:install] published proxool to myrepository/no- namespace/proxool/proxool/jars/proxool-0.8.3.jar
[ivy:install] published ivy to myrepository/no-namespace/proxool/proxool/ivys/ivy -0.8.3.xml
[ivy:install] published commons-logging to myrepository/no-namespace/commons- logging/commons-logging/jars/commons-logging-1.0.2.jar
[ivy:install] published ivy to myrepository/no-namespace/commons-logging/commons- logging/ivys/ivy-1.0.2.xml
[ivy:install] published jboss-system to myrepository/no-namespace/jboss/jboss- system/jars/jboss-system-4.0.2.jar
[ivy:install] published ivy to myrepository/no-namespace/jboss/jboss- system/ivys/ivy-4.0.2.xml
[ivy:install] published jboss-common to myrepository/no-namespace/jboss/jboss- common/jars/jboss-common-4.0.2.jar
[ivy:install] published ivy to myrepository/no-namespace/jboss/jboss- common/ivys/ivy-4.0.2.xml
[ivy:install] published jboss-minimal to myrepository/no-namespace/jboss/jboss- minimal/jars/jboss-minimal-4.0.2.jar
[ivy:install] published ivy to myrepository/no-namespace/jboss/jboss- minimal/ivys/ivy-4.0.2.xml
[ivy:install] published jboss-j2se to myrepository/no-namespace/jboss/jboss- j2se/jars/jboss-j2se-200504122039.jar
[ivy:install] published ivy to myrepository/no-namespace/jboss/jboss- j2se/ivys/ivy-200504122039.xml
[ivy:install] published concurrent to myrepository/no- namespace/concurrent/concurrent/jars/concurrent-1.3.4.jar
[ivy:install] published ivy to myrepository/no- namespace/concurrent/concurrent/ivys/ivy-1.3.4.xml
[ivy:install] published jgroups-all to myrepository/no-namespace/jgroups/jgroups- all/jars/jgroups-all-2.2.7.jar
[ivy:install] published ivy to myrepository/no-namespace/jgroups/jgroups- all/ivys/ivy-2.2.7.xml
[ivy:install] published webdavlib to myrepository/no- namespace/slide/webdavlib/jars/webdavlib-2.0.jar
[ivy:install] published ivy to myrepository/no-namespace/slide/webdavlib/ivys/ivy -2.0.xml
[ivy:install] published xercesImpl to myrepository/no- namespace/xerces/xercesImpl/jars/xercesImpl-2.6.2.jar
[ivy:install] published ivy to myrepository/no- namespace/xerces/xercesImpl/ivys/ivy-2.6.2.xml
[ivy:install] :: install resolution report ::
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 28 | 28 | 0 | 0 || 28 | 26 |
---------------------------------------------------------------------
BUILD FAILED
build.xml:80: Problem happened while installing modules - see output for details
Total time: 2 minutes 49 seconds
如你所見,安裝失敗了。如果你查看日志,你將看到在源倉庫中缺少制品。這意味著你需要手工下載 那些制品,然後復制他們到你的目標倉庫來完成安裝。幸運的是在安裝過程中ivy使用最努力的算法,因 此除了缺少的制品外所有的東西都安裝好了。
你可以也注意到ivy已經安裝了兩個不同修訂版本的commons-logging (1.0.2, 1.0.4).這歸結於我們 在ivysettings文件中使用了"no conflict"沖突管理器。
我們不想驅逐任何模塊,因為我們正在構建我們自己的倉庫。實際上如果我們同時獲取commons- logging 1.0.2 和 1.0.4,那是因為在hibernate的遞推依賴中有些模塊依賴1.0.2而其他的依賴1.0.4。 如果我們只獲取1.0.4,依賴於1.0.2的模塊將在你自己的昂哭中變得不一致(依賴一個你沒有安裝的版本) 。因此直接使用這個模塊的開發人員將遇到問題。
如果你現在更緊密的觀察你的倉庫,你將可能發現它不是一個准確的源倉庫的復制品。讓我們看一下 一個模塊的內容:
Z:\>dir /s /B /A:-D myrepository\no-namespace\org.hibernate\hibernate\
Z:\myrepository\no-namespace\org.hibernate\hibernate\ivys\ivy-3.2.5.ga.xml
Z:\myrepository\no-namespace\org.hibernate\hibernate\ivys\ivy-3.2.5.ga.xml.md5
Z:\myrepository\no-namespace\org.hibernate\hibernate\ivys\ivy-3.2.5.ga.xml.sha1
Z:\myrepository\no-namespace\org.hibernate\hibernate\jars\hibernate-3.2.5.ga.jar
Z:\myrepository\no-namespace\org.hibernate\hibernate\jars\hibernate-3.2.5.ga.jar.md5
Z:\myrepository\no-namespace\org.hibernate\hibernate\jars\hibernate- 3.2.5.ga.jar.sha1
如你所見,這裡沒有pom(pom是maven2使用的模塊metadata格式,在maven2倉庫中可用)。作為替換你 可以看到ivy文件,實際上是原始hibernate pom轉化為ivy文件的。因此現在你有一個帶有ivy文件的真實 的ivy倉庫,這裡你可以使用ivy的完整能力,如果你想調整模塊metadata(模塊配置,細粒度的排除和遞 推控制,每個模塊的沖突管理,...)。
好,對於這個簡單倉庫的安裝就到這裡了,下一個教程將展示如何處理更加復雜的情況,你的源和目 的地倉庫不遵循同樣的命名轉換。