隨筆 - 3  文章 - 7  trackbacks - 0
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          一Ant與Maven的對比
                  提到Maven就不得不提到Ant,Apache Ant is a Java-based build tool.這個是Ant的指南的導言中的第一句話,有兩個意思,一是指明ant是基于java語言開發的,另一個意思是指明了ant是一個構建工具。而在Maven的主頁上的第一句話Maven is a software project management and comprehension tool.指出了Maven是一個軟件項目管理工具,(在此段將Maven翻譯成軟件項目管理工具我是有疑義的,但網上查看資料都是這樣翻譯的,而且Project Management直譯的確有項目管理的意思,晚些時候再討論此處)。
                  單純的從字面意思上來理解,根本覺得ant與Maven是風馬牛不相及的,而大家對于這兩個工具為什么會劃上等號,我覺得要從本質上來看Ant與Maven所做的工作了。
                  Ant既然是構建工具,那ant可以做哪些事呢?編譯代碼、單元測試、生成文檔、打包、制作安裝包、混淆代碼、部署等等,ant的功能可以說是非常強大的,不過整個構建過程(構建的生命周期)里需要做哪些事情,完全是需要我們自己思考定義的。
                  Maven真正所做的工作其實和ant差不多,也是編譯代碼、單元測試、生成文檔等等,那到底這兩個工具間有什么異同呢?
                  我想真正的差別還是體現在了思想上,在Maven的介紹頁中(http://maven.apache.org/what-is-maven.html)提到Maven最初是在構建處理Jakarta Turbine項目的時候,發現這個項目的幾個工程的ant構建腳本只有很細微的差別,于是Maven的作者想將構建工程標準化,對構建過程提供了一個指導性的思想,將項目構建生命周期具體化,(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)由此我想,為什么Maven的名稱定義為Maven,可以認為Maven在思想上提供了專家級的意見的原因吧。
          項目的構建生命周期被具體化后,首先是減少了對構建腳本的維護,讓多個項目構建生命周期進行重用(也沒啥重用的,反正用Maven生命周期都一樣),讓開發人員都使用這一套規范。
                  當然,很多人是不吃這一套的,Maven強制開發人員接受自己定義構建標準除了讓人感覺不自由、不靈活外,且擔心Maven處理構建生命周期時,內部產生未知問題。還有一些小型項目,根本不需要如此完善的構建生命周期,使用Maven提供的構建生命周期,只是帶來了不必要的復雜性。
                  所以Maven也不是萬金油,仍然需要根據項目的實際情況進行選擇,對于涉及人員較多的大型項目,且在軟件生命周期上與Maven的標準保持一致的情況下,就可以選擇使用Maven。而對于靈活性要求較高、或者一次性的項目,使用Ant足矣。
          posted @ 2007-04-29 06:57 SoulEngineer 閱讀(1303) | 評論 (2)編輯 收藏
          主站蜘蛛池模板: 双峰县| 乌拉特前旗| 海安县| 新丰县| 铁岭县| 沧州市| 宜城市| 曲水县| 莎车县| 镇安县| 江达县| 威远县| 德兴市| 东港市| 华宁县| 星子县| 南城县| 台北市| 溆浦县| 林西县| 定安县| 泰来县| 大姚县| 伊春市| 兴安县| 孟村| 休宁县| 当阳市| 囊谦县| 安丘市| 博罗县| 贡山| 油尖旺区| 海林市| 化隆| 健康| 韩城市| 淳化县| 铜梁县| 中牟县| 东至县|