Ivy是什么
Ivy是一個跟蹤管理項目直接以來關系的工具。Ivy具有良好的靈活性和可配置性,使其可以適應各種不同的依賴管理和構建過程要求;雖然Ivy作為依賴管理工具,其可以與Apache Ant進行緊密集成,在依賴管理中充分利用Ant提供的強大的任務功能。Ivy是一個開源項目,它提供了很多強大的功能,但是最受歡迎和最有用的特性是它的靈活性、與ant集成、傳遞依賴管理。
下面我們通過一個簡單的例子看一下Ivy怎么管理依賴的。
Ivy.xml
<ivy-module version="2.0"> <info organisation="wufengtinghai" module="wufengtinghai.alm"/> <dependencies> <dependency org="org.apache.commons" name="commons-collections4" rev="4.0"/> </dependencies> </ivy-module>
首先Ivy-module元素中的version定義了此文件使用的ivy的版本。在info元素中你可以定義自己的組織信息和模塊的名稱;dependency元素定義具體的依賴信息,我們使用org、name和rev來唯一標識依賴項。其中org是組織信息,name是模塊名稱,rev是模塊的版本。那在實際的開發中我們需要的特定依賴怎么在此文件中定義呢?Ivy默認使用maven2組件倉庫,所以我們可以去mvnrepositoy.com找到我們需要的模塊信息,具體的信息如下
我們可以看到圖中有各種依賴管理工具定義依賴的xml。
Build.xml
Ivy與ant集成是通過在ant的構建文件里定義ivy任務實現調用ivy的功能,從而實現依賴管理的。構建文件的內容如下
<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== 2015年6月6日 下午3:09:34 ivy description hou ====================================================================== --> <project name="ivyWithDefaultSettingBuild" default="default" xmlns:ivy="antlib:org.apache.ivy.ant"> <description> 使用ivy的基本配置 </description> <property name="libdir" value="../lib"></property> <!-- ================================= target: default ================================= --> <target name="default" description="description"> <ivy:retrieve /> </target> <target name="clearIvyCache" description="description"> <ivy:cleancache/> </target> </project>
我們可以看到只需要在構建文件中引入ivy的命名空間即可,然后就可以聲明ivy任務實現依賴的管理。在這里retrieve任務會使用默認的配置管理ivy.xml中定義的依賴。
通過ant命令執行
在eclipse里通過ant執行
在eclipse里通過ivyIDE執行