qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          maven3實戰之倉庫(快照版本)

          maven3實戰之倉庫(快照版本)

          ----------

          在Maven的世界中,任何一個項目或者構件都必須有自己的版本。版本的值可能是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是穩定的發布版本,而2.1-SNAPSHOT和2.1-20091214.221414-13是不穩定的快照版本。

          Maven為什么要區分發布版本和快照版本呢?簡單的1.0.0、1.2、2.1等不就夠了嗎?為什么還要2.1-SNAPSHOT,甚至是長長的2.1-20091214.221414-13?試想一下這樣的情況,小張在開發模塊A的2.1版本,該版本還未正式發布,與模塊A一同開發的還有模塊B,它由小張的同事季MM開發,B的功能依賴于A。在開發的過程中,小張需要經常將自己最新的構建輸出,交給季MM,供她開發和集成調試,問題是,這個工作如何進行呢?

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

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

          基于快照版本機制,小張在構建成功之后才能將構件部署至倉庫,而季MM可以完全不用考慮模塊A的構建,并且她能確保隨時得到模塊A的最新可用的快照構件,而這一切都不需要額外的手工操作。

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

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兴仁县| 河间市| 遂平县| 儋州市| 云龙县| 随州市| 逊克县| 井研县| 定南县| 巴南区| 区。| 无锡市| 将乐县| 关岭| 化隆| 巢湖市| 鄂伦春自治旗| 德清县| 玉林市| 东源县| 南昌市| 来安县| 翼城县| 玉门市| 开封县| 临安市| 贵南县| 兴宁市| 开鲁县| 山丹县| 修武县| 依兰县| 荔波县| 荣成市| 咸阳市| 满洲里市| 喜德县| 元氏县| 泰来县| 大方县| 盐源县|