天天看點

使用Ivy管理項目中的依賴

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找到我們需要的子產品資訊,具體的資訊如下

使用Ivy管理項目中的依賴

我們可以看到圖中有各種依賴管理工具定義依賴的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指令執行

使用Ivy管理項目中的依賴

在eclipse裡通過ant執行

使用Ivy管理項目中的依賴

在eclipse裡通過ivyIDE執行

使用Ivy管理項目中的依賴
使用Ivy管理項目中的依賴