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找到我們需要的子產品資訊,具體的資訊如下
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUjNwkDO4kzMwQDMyIzNw8CX2ATNxAjMvw1M3ETN18CX1EDMyc2bsJ2Lc12bj5ycn9Gbi52YuAzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
我們可以看到圖中有各種依賴管理工具定義依賴的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執行