ivy中文參考文檔(2)-術(shù)語
在ivy中使用了很多術(shù)語,他們的定義如下:
* Organisation / 組織
* Module / 模塊
* Module Descriptor / 模塊描述符
* Artifact / 制品
* Type of an artifact / 制品類型
* Artifact file name extension / 制品文件擴(kuò)展名
* Module Revision / 模塊修訂本
* Branch / 分支
* Status of a revision / 修訂本狀態(tài)
* Configurations of a module / 模塊配置
* Ivy Settings / ivy設(shè)置
* Repository / 倉(cāng)庫(kù)
一. 概述
下面的插圖展示了所有的關(guān)鍵術(shù)語:
http://ant.apache.org/ivy/history/2.1.0-rc1/images/ivy-terminology.png
二. Organisation / 組織
組織可以是公司,個(gè)人,或者僅僅是任何開發(fā)軟件的一組人。原則上,ivy僅處理單一級(jí)別的組織,這意味著他們?cè)趇vy模塊描述符中擁有一個(gè)扁平的命名空間。因此,如果使用分層的命名習(xí)慣,用ivy的描述符只能描述樹形組織結(jié)構(gòu)。組織名用來將同一個(gè)團(tuán)隊(duì)生產(chǎn)的軟件保持一致,僅僅是幫助定位他們發(fā)布的。
作品。
在ivy中通常使用反轉(zhuǎn)的域名作為組織名,因?yàn)橛蛎仟?dú)一無二的。域名為www.example.com的公司可以使用com.example,或者如果他們有多個(gè)團(tuán)隊(duì),他們的組織名可以以com.example開頭(例如com.example.rd, com.example.infra, com.example.services)。組織名并不強(qiáng)制要求一定要是域名反轉(zhuǎn),或者全局唯一,但是唯一的名字是高度推薦的。被廣泛認(rèn)可的商標(biāo)或者商業(yè)名的擁有者可以選擇使用他們商標(biāo)名。如org.apache, ibm, jayasoft
注意ivy的“組織”非常類似maven POM 中的"groupId"。
三. Module / 模塊
模塊是一個(gè)完備的可重用的軟件單元,帶有一個(gè)修訂版控制方案。
ivy僅關(guān)心模塊的發(fā)布比如大家熟知的"artifacts",還有用于表示他們的模塊描述符。這些發(fā)布,包括模塊的每一個(gè)修訂版本,在倉(cāng)庫(kù)中管理。換句話說,對(duì)于ivy,一個(gè)模塊就像一個(gè)修訂版本鏈,每個(gè)修訂版本由一個(gè)描述符和一個(gè)或多個(gè)artifact構(gòu)成。例如:hibernate-entitymanager, ant
模塊描述符
模塊描述符是識(shí)別模塊的一般方法:識(shí)別符(組織,模塊名,分支和修訂版本),已發(fā)布的制品,可能的配置和依賴。
在ivy中最通用的模塊描述符是Ivy Files,帶有ivy特定語法的xml文件,通常被稱為ivy.xml。
但是既然ivy同樣兼容maven2的原數(shù)據(jù)格式(名為pom, Project Object Model, 項(xiàng)目對(duì)象模型), pom文件也可以作為模塊描述符使用。
而且由于ivy支持可插入式的模塊描述符解析器,因此幾乎可以使用任何東西作為模塊描述符。
四. Artifact / 制品
制品是一個(gè)為模塊修訂版本的發(fā)布而準(zhǔn)備的單獨(dú)文件,作為開發(fā)的一個(gè)產(chǎn)品。
通常推薦使用壓縮包格式,因?yàn)槿菀坠芾恚瑐魉秃痛鎯?chǔ)。同樣的理由,通常一個(gè)模塊只有一個(gè)或者很少的制品。無論如何,制品可以是任意文件類型,在一個(gè)單獨(dú)的模塊中可以申明任意數(shù)量。
在java的世界種,通常的制品是Java archives 或者說jar文件。在很多情況下,模塊的每個(gè)修訂版本只發(fā)布一個(gè)制品(例如 jakarta-log4j-1.2.6.tar.gz), 但是他們中的一些發(fā)布多個(gè)制品,取決于模塊的使用。(像 apache-ant 二進(jìn)制和源文件,分別打包為zip, gz 和bz2 格式).例如: ant-1.7.0-bin.zip, apache-ant-1.7.0-src.tar.gz
制品類型
制品類型是一個(gè)特別類型的制品范例的范疇(翻譯的很暈,原文:The artifact type is a category of a particular kind of artifact specimen.)。 這是基于制品的已制定計(jì)劃或者制品如何提供的分類法,而不是包的格式類型或者制品如何發(fā)布。
雖然制品的類型可能暗示它的文件格式,但是他們是兩個(gè)不同的概念。制品的文件擴(kuò)展名和它的格式聯(lián)系更緊密。例如,Java archives的情況,制品類型"jar"顯示它確實(shí)是一個(gè)Java archive文件,符合JAR文件規(guī)范。它的文件擴(kuò)展名只是湊巧也是"jar"。另一方面,對(duì)于源文件發(fā)布包,制品類型可能是"source",雖然文件擴(kuò)展名可以是"tar.gz", "zip", "java", "c", 或 "xml"。所以,制品類型基本上是用來解釋它的目的的抽象功能類別,而制品文件擴(kuò)展名是更加具體的技術(shù)上的文件格式和名稱的標(biāo)記。
定義模塊的適當(dāng)?shù)闹破奉愋陀砷_發(fā)組織決定。通常的選擇包括: "jar", "binary", "bin", "rc", "exe", "dll", "source", "src", "config", "conf", "cfg", "doc", "api", "spec", "manual", "man", "data", "var", "resource", "res", "sql", "schema", "deploy", "install", "setup", "distrib", "distro", "distr", "dist", "bundle", 等等.
模塊描述符不是真正的制品,但是他們可以作為一個(gè)制品類型,比如"descriptor"(ivy file 或者 Maven POM).
電子簽名或者摘要本身不是真正的制品,但是他們可以再倉(cāng)庫(kù)中被找到。他們也被作為一種制品類型,例如"digest" (md5 or sha1)。
五. 模塊修訂本和狀態(tài)
模塊修訂本
模塊的每一個(gè)被發(fā)布的唯一狀態(tài)都被分配一個(gè)唯一的修訂本編號(hào)或者版本名。ivy可以幫助為模塊的發(fā)布生成修訂本編號(hào),并將修訂本發(fā)行到倉(cāng)庫(kù)中,但是修訂本控制的其他方便,尤其是源文件修訂,必須由單獨(dú)的版本控制系統(tǒng)管理。
因此,對(duì)于ivy,修訂本經(jīng)常對(duì)應(yīng)模塊的一個(gè)發(fā)布版本。它可以是public, shared 或 local delivery,一個(gè)發(fā)布,一個(gè)里程碑或者一個(gè)集成構(gòu)造,一個(gè)alpha或者bata版本,一個(gè)nightly build, 或者甚至是一個(gè)持續(xù)構(gòu)造。它們都被ivy視為修訂本。
在某些情況下,源文件控制系統(tǒng)的源文件修訂本編號(hào)可以被用來作為模塊的修訂本編號(hào),但是這種用法非常少見。它們是兩個(gè)不同的概念,即使模塊的修訂本編號(hào)是完全或部分從源文件修訂本編號(hào)中復(fù)制過來。
分支
分支對(duì)應(yīng)于源文件控制管理工具中的分支(有時(shí)是stream/流)的標(biāo)準(zhǔn)含義。head, 或者trunk, 或者main stream都被ivy視為分支。
修訂本狀態(tài)
模塊的狀態(tài)顯示模塊的修訂本的穩(wěn)定程度。它被用來統(tǒng)一所有模塊依賴的狀態(tài),防止在模塊的release中使用依賴的集成修訂本。
ivy默認(rèn)定義三種狀態(tài)
* integration/集成: continuous build,nightly build等產(chǎn)生的修訂本歸于此類
* milestone/里程碑: 發(fā)布給公眾但是還沒有真正完成的修訂本歸于此類
* release/發(fā)行: 完整測(cè)試并被打好標(biāo)簽的修訂本歸于此類
在1.4版本之后,這個(gè)列表可以在settings file/設(shè)置文件中配置。
六. 模塊配置
模塊配置是使用或者構(gòu)建一個(gè)模塊的方法。如果同一個(gè)模塊有不同的依賴,基于如何使用,在ivy中這些不同的依賴組合被稱為它的配置。
一些模塊可能以不同的方式被使用(考慮hibernate,可以在應(yīng)用服務(wù)器內(nèi)部或者外部使用),而這種方式可能改變你需要的制品(這種情況下的hibernate, jta.jar僅僅當(dāng)它被在應(yīng)用服務(wù)器外部使用時(shí)才需要)。此外,模塊可能僅僅在build時(shí)需要一些其他模塊或者制品,而在運(yùn)行時(shí)需要其他一些。所有這些不同的使用或者構(gòu)建模塊方式在ivy中被稱為模塊配置。
更多配置和他們?cè)趇vy中如何被使用的細(xì)節(jié),請(qǐng)參考主要概念的頁面。
七. ivy設(shè)置
ivy設(shè)置文件是xml文件,用于配置ivy來指示從哪里可以找到模塊和如何找到模塊。
設(shè)置的歷史
在ivy2.0之前,設(shè)置文件被稱為配置文件,通常名為為ivyconf.xml。這導(dǎo)致了模塊配置和ivy配置文件之間的混淆,因此被重命名為配置文件。如果你偶爾發(fā)現(xiàn)ivyconf文件,或者某些被稱為配置文件的東西,大多數(shù)情況下都只是因?yàn)樗菦]有更新的信息(文檔,指南和文章). 可以隨便報(bào)告任何類似這樣的問題,如果你在這封文檔中發(fā)現(xiàn)這樣的不一致。
八. 倉(cāng)庫(kù)
在ivy中,被稱為倉(cāng)庫(kù)的是ivy用來發(fā)現(xiàn)你要求的模塊的制品和描述符的分布站點(diǎn)位置(也就是大多數(shù)情況下的ivy文件)。ivy可以使用非常精巧的配置的復(fù)雜倉(cāng)庫(kù)。你可以使用Dependency Resolvers來做這些。
posted on 2009-05-25 13:09 sky ao 閱讀(2522) 評(píng)論(5) 編輯 收藏 所屬分類: project building