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 閱讀(703) 評論(0)  編輯  收藏 所屬分類: maven

          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 莒南县| 平山县| 临夏县| 龙游县| 鹤庆县| 枞阳县| 安化县| 油尖旺区| 淮北市| 恩施市| 兴宁市| 台江县| 西乌| 永春县| 高邮市| 呼伦贝尔市| 习水县| 西宁市| 六盘水市| 蒙山县| 永嘉县| 特克斯县| 灵台县| 西昌市| 胶州市| 文水县| 湄潭县| 克山县| 江安县| 伊金霍洛旗| 陕西省| 东台市| 普格县| 若羌县| 十堰市| 台北市| 赤城县| 耒阳市| 微博| 读书| 鹰潭市|