Apache Ant
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.
Apache Ivy - Apache Ant 的一個(gè)子項(xiàng)目
Apache Ivy? is a popular dependency manager focusing on flexibility and simplicity.
Ant & Ivy 操作示例
ivysettings.xml 文件用于配置從中下載有依賴(lài)關(guān)系的 JAR 文件的存儲(chǔ)庫(kù)。
示例:
<ivysettings>
<settings defaultResolver="chained"/>
<resolvers>
<chain name="chained" returnFirst="true">
<filesystem name="libraries">
<artifact pattern="${ivy.conf.dir}/repository/[artifact]-[revision].[type]" />
</filesystem>
<url name="integratebutton">
<artifact pattern="http://www.integratebutton.com/repo/[organisation]/[module]/
[revision]/[artifact]-[revision].[ext]" />
</url>
<ibiblio name="ibiblio" />
<url name="ibiblio-mirror">
<artifact pattern="http://mirrors.ibiblio.org/pub/mirrors/maven2/[organisation]/
[module]/[branch]/[revision]/[branch]-[revision].[ext]" />
</url>
</chain>
</resolvers>
</ivysettings>
ivy.xml 文件用于描述項(xiàng)目對(duì)其他類(lèi)庫(kù)的依賴(lài)把敞。
示例:
<ivy-module version="2.0">
<info organisation="apache" module="hello-ivy"/>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.0"/>
<dependency org="commons-cli" name="commons-cli" rev="1.0"/>
</dependencies>
</ivy-module>
dependencies 部分讓你定義依賴(lài)退疫。這里這個(gè)模塊依賴(lài)兩個(gè)類(lèi)庫(kù):commons-lang 和 commons-cli傀顾。如你所看到的塘安,我們使用 org 和 name 屬性來(lái)定義我們需要的依賴(lài)的組織和模塊名叭喜。rev 屬性用于明確說(shuō)明你依賴(lài)的模塊的修訂版本膝宁。
為了知道如何填寫(xiě)這些屬性跨晴,你需要知道你依賴(lài)的類(lèi)庫(kù)的準(zhǔn)確信息欧聘。ivy 默認(rèn)使用 maven2 倉(cāng)庫(kù)。我們推薦你使用 http://mvnrepository.com 來(lái)查找你需要的模塊坟奥。一旦你找到它树瞭,你將得到如何在一個(gè) maven POM 中聲明依賴(lài)的細(xì)節(jié)。例如:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
</dependency>
對(duì)應(yīng)的 build.xml 文件包含一個(gè) target 集合爱谁,容許解析在 ivy 文件中聲明的依賴(lài)晒喷,編譯并運(yùn)行示例代碼,生成依賴(lài)解析報(bào)告访敌,并清理項(xiàng)目的緩存凉敲。
<target name="resolve" description="retrieve dependencies with ivy">
<ivy:retrieve />
</target>
這里我們只使用了一個(gè)任務(wù):retrieve 任務(wù)。沒(méi)有任何屬性寺旺,它將使用默認(rèn)設(shè)置并查找名為 ivy.xml 的文件來(lái)獲取依賴(lài)定義爷抓。
Ivy 依賴(lài)報(bào)告
Ivy 提供了一個(gè)任務(wù),用于報(bào)告一個(gè)項(xiàng)目中的依賴(lài)文件阻塑。
<target name="ivy-report" depends="init-ivy">
<ivy:report todir="${target.dir}/reports/ivy"/>
</target>
引用:
讓開(kāi)發(fā)自動(dòng)化: 利用 Ivy 管理依賴(lài)項(xiàng)
ANT蓝撇、IVY 和 MAVEN
ivy教程(2)-快速開(kāi)始