qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          maven3實(shí)戰(zhàn)之倉(cāng)庫(kù)(快照版本)

          maven3實(shí)戰(zhàn)之倉(cāng)庫(kù)(快照版本)

          ----------

          在Maven的世界中,任何一個(gè)項(xiàng)目或者構(gòu)件都必須有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHOT或者2.1-20091214.221414-13。其中,1.0、1.3-alpha-4和2.0是穩(wěn)定的發(fā)布版本,而2.1-SNAPSHOT和2.1-20091214.221414-13是不穩(wěn)定的快照版本。

          Maven為什么要區(qū)分發(fā)布版本和快照版本呢?簡(jiǎn)單的1.0.0、1.2、2.1等不就夠了嗎?為什么還要2.1-SNAPSHOT,甚至是長(zhǎng)長(zhǎng)的2.1-20091214.221414-13?試想一下這樣的情況,小張?jiān)陂_(kāi)發(fā)模塊A的2.1版本,該版本還未正式發(fā)布,與模塊A一同開(kāi)發(fā)的還有模塊B,它由小張的同事季MM開(kāi)發(fā),B的功能依賴于A。在開(kāi)發(fā)的過(guò)程中,小張需要經(jīng)常將自己最新的構(gòu)建輸出,交給季MM,供她開(kāi)發(fā)和集成調(diào)試,問(wèn)題是,這個(gè)工作如何進(jìn)行呢?

          如果不停更新版本2.1.1、2.1.2、2.1.3....呢?首先,小張和季MM兩人都需要頻繁地更改POM,如果有更多的模塊依賴于模塊A,就會(huì)涉及更多的POM更改;其次,大量的版本其實(shí)僅僅包含了微小的差異,這樣也會(huì)造成為版本號(hào)的濫用。

          Maven的快照版本機(jī)制就是為了解決上述問(wèn)題。在該例中,小張只需要將模塊A的版本設(shè)定為2.1-SNAPSHOT,然后發(fā)布到私服中,在發(fā)布的過(guò)程中,Maven會(huì)自動(dòng)為構(gòu)件打上時(shí)間戳。比如:2.1-20091214.221414-13就表示2009年12月14日 22點(diǎn)14分14秒的第13次快照。有了該時(shí)間戳,Maven就能隨時(shí)找到倉(cāng)庫(kù)中該構(gòu)件2.1-SNAPSHOT版本最新的文件。這時(shí),季MM配置對(duì)于模塊A的2.1-SNAPSHOT版本的依賴,當(dāng)她構(gòu)件模塊B的時(shí)候,Maven會(huì)自動(dòng)從倉(cāng)庫(kù)中檢查模塊A的2.1-SNAPSHOT的最新構(gòu)件,當(dāng)發(fā)現(xiàn)有更新時(shí)便進(jìn)行下載。默認(rèn)情況下,Maven每天檢查一次更新(由倉(cāng)庫(kù)配置的updatePolicy控制),用戶也可以使用命令行-U參數(shù)強(qiáng)制讓Maven檢查更新,如:mvn clean install-U

          基于快照版本機(jī)制,小張?jiān)跇?gòu)建成功之后才能將構(gòu)件部署至倉(cāng)庫(kù),而季MM可以完全不用考慮模塊A的構(gòu)建,并且她能確保隨時(shí)得到模塊A的最新可用的快照構(gòu)件,而這一切都不需要額外的手工操作。

          posted on 2014-03-26 13:01 順其自然EVO 閱讀(698) 評(píng)論(0)  編輯  收藏 所屬分類: maven

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 凤冈县| 弥渡县| 达日县| 桦甸市| 大邑县| 寻乌县| 寿光市| 丹凤县| 内丘县| 普兰店市| 特克斯县| 东乌珠穆沁旗| 和田县| 上高县| 龙岩市| 漳浦县| 龙井市| 泰宁县| 江川县| 合江县| 垦利县| 手游| 鸡泽县| 富源县| 武隆县| 敖汉旗| 历史| 枣庄市| 屏边| 静宁县| 河源市| 沧源| 东乡| 华安县| 桂平市| 扎囊县| 交城县| 固镇县| 荥经县| 凤翔县| 育儿|