本篇文章給大家分享的是有關(guān)ivy的配置和使用是怎樣的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供西夏網(wǎng)站建設(shè)、西夏做網(wǎng)站、西夏網(wǎng)站設(shè)計(jì)、西夏網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、西夏企業(yè)網(wǎng)站模板建站服務(wù),十余年西夏做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
maven很強(qiáng)大,但也有令人煩惱的地方。看到Ivy似乎日漸成熟,試試看這個(gè)小東西表現(xiàn)如何,畢竟后面有那個(gè)強(qiáng)大的ant
一. 下載安裝
從官網(wǎng)http://ant.apache.org/ivy/下載到最新的ivy2.0.0正式版,選擇的是with dependencies的包。
在安裝ivy之前,請(qǐng)先安裝好ant,因?yàn)镮vy是基于ant的;需要根據(jù)ivy的版本選擇ant的版本。
下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache//ant/ivy/2.4.0/apache-ivy-2.4.0-bin-with-deps.tar.gz
參照官網(wǎng)的安裝,將下載下來的ivy安裝包解壓,然后復(fù)制ivy的jar文件到ant的lib目錄下(ANT_HOME/lib)。設(shè)置系統(tǒng)屬性IVY_HOME到ivy的安裝目錄,比如D:\ivy2.4.0。
二. 設(shè)置工作目錄
Ivy 使用"ivy.default.ivy.user.dir"作為工作目錄,ivy通過以下方式確認(rèn)該目錄的具體路徑:
1. 查找變量ivy.default.ivy.user.dir
2. 如果沒有找到,查找變量ivy.home
3. 如果還沒有找到,查找變量user.home,然后使用user.home/.ivy目錄
默認(rèn)安裝而沒有專門設(shè)置前,前兩個(gè)變量不存在,因此ivy就會(huì)使用user.home作為默認(rèn)工作目錄.
Ivy 使用cache目錄來存放緩存文件,ivy通過以下方式確認(rèn)該目錄的具體路徑:
1. 查找變量ivy.cache.dir
2. 如果沒有找到,使用ivy.default.ivy.user.dir/cache 默認(rèn)安裝而沒有專門設(shè)置前,前ivy.cache.dir變量不存在,因此ivy就會(huì)使用ivy.default.ivy.user.dir/cache,由于ivy.default.ivy.user.dir在該情況下默認(rèn)使用user.home,因此最后的結(jié)果就是使用user.home/cache目錄。
修改默認(rèn)工作路徑的方法,很明顯,設(shè)置上述的幾個(gè)變量值即可。比如需要將ivy.default.ivy.user.dir設(shè)置到一個(gè)特定的目錄而不是使用當(dāng)前操作系統(tǒng)的user.home路徑,對(duì)于ivy,可以通過設(shè)置ant屬性的方式。比如修改build.xml文件,增加以下內(nèi)容
<property name="ivy.default.ivy.user.dir" value="D:\ivy\userdir" /> 這樣就將工作路徑修改過去,cache目錄也隨之改變,避免重新安裝操作系統(tǒng)/安裝多操作系統(tǒng)等情況下對(duì)當(dāng)前操作系統(tǒng)和用戶的依賴。
由于build.xml文件通常都是項(xiàng)目文件,需要提交到svn,git等版本控制系統(tǒng)中,因此直接在里面寫路徑不大適合,一旦修改需要改動(dòng)所有項(xiàng)目的build.xml,而且不同開發(fā)人員要求路徑相同,不大合理。考慮到ant是可以方便讀取系統(tǒng)環(huán)境變量的,因此可以用環(huán)境變量來定義具體的路徑,ant簡單使用該環(huán)境變量:
設(shè)置環(huán)境變量env.ivy.default.ivy.user.dir=D:\ivy\userdir
build.xml中這樣引用:
<property environment="env"/>
<property name="ivy.default.ivy.user.dir" value="${env.ivy.default.ivy.user.dir}" /> 以上目錄使用規(guī)則可以直接看ivy的源代碼,很清晰,類org.apache.ivy.core.settings.IvySettings中IvySettings()的構(gòu)造函數(shù)很容易看出上面的規(guī)則。
三. 配置文件路徑 ivy使用變量名ivy.settings.file來設(shè)置配置文件路徑,由于沒有找到相關(guān)的設(shè)置文檔,因此干脆打開源文件看代碼。
在類org.apache.ivy.ant.IvyAntSettings中,函數(shù)defineDefaultSettingFile()中有相關(guān)的代碼:
1. 查找變量名ivy.settings.file
settingsFileName = variableContainer.getVariable("ivy.settings.file");
2.可能的路徑,依次是項(xiàng)目BaseDir(應(yīng)該是ant的build.xml文件中定義的BaseDir,通常是項(xiàng)目根路徑),當(dāng)前路徑,很奇怪居然不查找諸如ivy.default.ivy.user.dir的路徑,甚至連ivy.settings.dir都不去查找,莫名其妙
File[] settingsLocations = new File[] {
new File(getProject().getBaseDir(), settingsFileName),
new File(getProject().getBaseDir(), "ivyconf.xml"),
new File(settingsFileName),
new File("ivyconf.xml")
};
3. 上面四個(gè)路徑依次查找
for (int i = 0; i < settingsLocations.length; i++) {
file = settingsLocations[i];
verbose("searching settings file: trying " + file);
if (file.exists()) {
break;
}
}
4. 如果沒有找到,則取默認(rèn)設(shè)置
if (!file.exists()) {
info("no settings file found, using default...");
file = null;
url = IvySettings.getDefaultSettingsURL();
}
默認(rèn)配置文件是ivy.jar包中的org.apache.ivy.core.settings.ivysettings.xml,如果不做任何相關(guān)配置,一般都使用這個(gè)默認(rèn)配置。
了解ivy是怎么工作了,想配置就方便了。比如如果希望為當(dāng)前項(xiàng)目單獨(dú)設(shè)置,則可以:
1. 在當(dāng)前項(xiàng)目BaseDir目錄下放置ivyconf.xml文件
new File(getProject().getBaseDir(), "ivyconf.xml")
這個(gè)是最簡單的方案了,奇怪的是這里的文件名是ivyconf.xml,很郁悶,我用ivysettings.xml測試了好久都不生效,原來根結(jié)在這個(gè)地方。風(fēng)格不統(tǒng)一,估計(jì)是新老版本兼容問題,幸虧可以看到源代碼。
2. 或者同時(shí)設(shè)置ivy.settings.file為要求的文件名,將該文件放置在項(xiàng)目BaseDir目錄下
new File(getProject().getBaseDir(), settingsFileName)
比如設(shè)置ivy.settings.file=ivysettings.xml,這樣可以和jar包中的文件名保持一致。似乎用處不大?
3. 為了讓所有項(xiàng)目統(tǒng)一使用相同配置,可以考慮直接將ivy.settings.file指向一個(gè)公共的配置文件
比如設(shè)置ivy.settings.file為${env.ivy.default.ivy.user.dir}/ivysettings.xml
這樣就不必每次都重復(fù)設(shè)置相同的內(nèi)容,比如ivy的public repository,默認(rèn)是使用maven2的官網(wǎng)倉庫,我們可以修改為使用maven的本地私庫,如nexus之類。
build.xml中的設(shè)置:
<property environment="env"/>
<property name="ivy.default.ivy.user.dir" value="${env.ivy.default.ivy.user.dir}" />
<property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />
四. 和nexus集成
1. ivysettings.xml
將原有的
<include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
修改為
<include url="./ivysettings-public.xml"/>
2. 在ivysettings.xml相同目錄下放置ivysettings-public.xml文件
實(shí)際從ivy.jar包中copy出對(duì)應(yīng)文件,然后修改
<ibiblio name="public" m2compatible="true" root="http://192.168.0.30:8081/nexus/content/groups/public/"/>
注意這里的name="public"不能改,否則會(huì)報(bào)錯(cuò)。
有關(guān)public, shared, private三個(gè)repository的資料,請(qǐng)參考官方文檔,說明的很細(xì)致
http://ant.apache.org/ivy/history/latest-release/tutorial/defaultconf.html
總結(jié):
1) install ant1.6+
set env ANT_HOME=D:\ant
set Path, add ANT_HOME/bin
2) install ivy
set env IVY_HOME=D:\ivy\ivy200
set env ivy.default.ivy.user.dir=D:\ivy\userdir
3) config ivy for all projects and users
1. copy ivysettings.xml to userdir
2. copy ivysettings-public.xml to userdir
3. open ivysettings-public.xml, edit m2 URL
4) add ivy setting to ant build.xml of project
<property environment="env"/>
<property name="ivy.default.ivy.user.dir" value="${env.ivy.default.ivy.user.dir}" />
<property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />
ivy.default.ivy.user.dir是不能作為linux下的環(huán)境變量名的!只好修改為IvyDefaultUserDir。
即:
set env IvyDefaultUserDir=D:\ivy\userdir
<property environment="env"/>
<property name="ivy.default.ivy.user.dir" value="${env.IvyDefaultUserDir}" />
<property name="ivy.settings.file" value="${ivy.default.ivy.user.dir}/ivysettings.xml" />
以上就是ivy的配置和使用是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁名稱:ivy的配置和使用是怎樣的
網(wǎng)頁鏈接:http://chinadenli.net/article18/jpsdgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)、建站公司、定制網(wǎng)站、電子商務(wù)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)