在這個(gè)步驟中我們使用install任務(wù)來從maven2 倉庫安裝模塊到一個(gè)基于文件系統(tǒng)的倉庫。我們首先安裝一個(gè)不帶依賴的模塊,然后安裝一個(gè)帶有依賴的模塊。
1) 基礎(chǔ): 使用ivysettings.xml文件
這里我們使用的ivy設(shè)置文件非常簡單。它定義兩個(gè)解析器,libraries 和 my-repository. 第一個(gè)作為源使用,第二個(gè)作為目的地。在典型的安裝中第二個(gè)倉庫將使用包含設(shè)置來配置,被這個(gè)開發(fā)團(tuán)隊(duì)使用。
<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裝載的設(shè)置來調(diào)用[ant:install] 任務(wù),我們通過使用屬性提供fromResolver (源) 和 toResolver (目的) 來簡化腳本的維護(hù)。我們的解析器主要是:'libraries' 作為源而'my-repository'作為目的地.
這是ant調(diào)用的輸出:
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"解析器找到了模塊定義,而對應(yīng)的制品從maven2 倉庫下載完成。然后都被發(fā)布到文件系統(tǒng)倉庫(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
我們可以看到,現(xiàn)在我們的倉庫中有commons-lang模塊的版本1.0,調(diào)用一個(gè)生成的ivy.xml文件,它的jar,和所有md5和sha1檢驗(yàn)和,為將來開發(fā)人員使用這個(gè)倉庫來解析模塊進(jìn)行一致性檢查而準(zhǔn)備。
3) 安裝帶有依賴的模塊
現(xiàn)在我們可以說,我們想確認(rèn)在安裝后我們安裝的模塊的所有的依賴在我們的倉庫中都是可用的。我們可以或者在一個(gè)staging(臨時(shí)?分段?)倉庫上不帶依賴的安裝(更多控制),或者使用遞推依賴管理并要求ivy為我們安裝所有東西(簡單很多)。
調(diào)用的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>
如果你調(diào)用這個(gè)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
如你所見,安裝失敗了。如果你查看日志,你將看到在源倉庫中缺少制品。這意味著你需要手工下載那些制品,然后復(fù)制他們到你的目標(biāo)倉庫來完成安裝。幸運(yùn)的是在安裝過程中ivy使用最努力的算法,因此除了缺少的制品外所有的東西都安裝好了。
你可以也注意到ivy已經(jīng)安裝了兩個(gè)不同修訂版本的commons-logging (1.0.2, 1.0.4).這歸結(jié)于我們在ivysettings文件中使用了"no conflict"沖突管理器。
我們不想驅(qū)逐任何模塊,因?yàn)槲覀冋跇?gòu)建我們自己的倉庫。實(shí)際上如果我們同時(shí)獲取commons-logging 1.0.2 和 1.0.4,那是因?yàn)樵趆ibernate的遞推依賴中有些模塊依賴1.0.2而其他的依賴1.0.4。如果我們只獲取1.0.4,依賴于1.0.2的模塊將在你自己的昂哭中變得不一致(依賴一個(gè)你沒有安裝的版本)。因此直接使用這個(gè)模塊的開發(fā)人員將遇到問題。
如果你現(xiàn)在更緊密的觀察你的倉庫,你將可能發(fā)現(xiàn)它不是一個(gè)準(zhǔn)確的源倉庫的復(fù)制品。讓我們看一下一個(gè)模塊的內(nèi)容:
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文件,實(shí)際上是原始hibernate pom轉(zhuǎn)化為ivy文件的。因此現(xiàn)在你有一個(gè)帶有ivy文件的真實(shí)的ivy倉庫,這里你可以使用ivy的完整能力,如果你想調(diào)整模塊metadata(模塊配置,細(xì)粒度的排除和遞推控制,每個(gè)模塊的沖突管理,...)。
好,對于這個(gè)簡單倉庫的安裝就到這里了,下一個(gè)教程將展示如何處理更加復(fù)雜的情況,你的源和目的地倉庫不遵循同樣的命名轉(zhuǎn)換。