1) 設置文件
為了如您所想的工作,ivy有時需要一些設置。實際上,ivy可以在完全沒有任何特殊設置的情況下工作,查閱默認設置文檔來獲取相關 的更詳盡的信息。但是ivy有能力在完全不同的上下文下工作。你只需要正確的配置它。
設置通過xml文件來指定,通常命名為called ivysettings.xml。為了在ant中配置ivy,你只需要用你的設置文件的路徑來使用配置數 據類型。
這裡有一個設置文件的例子:
<ivysettings>
<properties file="${ivy.settings.dir}/ivysettings-file.properties" />
<settings defaultCache="${cache.dir}" defaultResolver="ibiblio" checkUpToDate="false" />
<resolvers>
<ibiblio name="ibiblio" />
<filesystem name="internal">
<ivy pattern="${repository.dir}/[module]/ivy-[revision].xml" />
<artifact pattern="${repository.dir}/[module]/[artifact]-[revision].[ext]" />
</filesystem>
</resolvers>
<modules>
<module organisation="jayasoft" name=".*" resolver="internal" />
</modules>
</ivysettings>
大體上,設置文件能夠配置ivy使用的默認緩存目錄和用來解析依賴的依賴解析器。
注意:為了能夠工作,這個設置文件需要一個和設置文件在同一個目錄下的名為ivysettings-file.properties的屬性文件,裡面有需 要的ivy變量。
在設置文件中有一些很有用的變量:
* ivy.settings.dir
這個變量涉及到ivy設置自身所在的目錄。如果設置被作為一個文件裝載這個變量可用。如果是一個url,取url最後一個斜線"/"前面的 部分。如果url沒有斜線"/",那麼這個變量不會被設置。
* ivy.settings.file
設置文件自身的路徑,只有在被作為文件裝載時。如果設置文件在作為一個url裝載,則這個變量不會被設置。
* ivy.settings.url
指向設置文件的url。當設置文件被作為文件或者url裝載時都將會設置。
ivy1.4版本後,主要所有的java系統屬性都可以作為ivy變量在設置文件中可用。
2) 設置文件結構
設置文件由許多部分組成,其他的保持開放。實際上每個解析器都有自己的結構,因此不是設置文件自身定義解析器的結構。
ivysettings
property
properties
settings
include
classpath
typedef
credentials
lock-strategies
caches
cache
latest-strategies
version-matchers
triggers
parsers
conflict-managers
outputters
namespaces
namespace
rule
fromsystem
src
dest
tosystem
src
dest
macrodef
attribute
any resolver
resolvers
any resolver
modules
module
statuses
status
3) ivysettings
標簽: ivysettings
每個設置文件的root標簽。
子元素
元素 描述 基數 property 設置ivy變量 0..n properties 裝載一個屬性文件作為ivy變量 0..n settings 使用一些默認來配置ivy 0..1 include 包含一些其他的設置文件 0..n classpath 在classpath中增加一個位置用於裝載插件 0..n typedef 在ivy中定義新的類型 0..n lock-strategies 定義鎖策略 0..1 caches 定義倉庫緩存管理器 0..1 latest-strategies 定義最新策略 0..1 parsers 定義模塊描述符解析器 0..1 version-matchers 定義新版本匹配器 0..1 triggers 注冊ivy事件的觸發器 0..1 namespaces 定義新的命名空間 0..1 macrodef 定義新的宏解析器 0..n resolvers 定義依賴解析器 0..1 conflict-managers 定義沖突管理器 0..1 modules 定義模塊和依賴解析器之間的規則 0..1 outputters 定義可用的報告輸出器列表 0..1 statuses 定義可用狀態列表 0..1