隨筆 - 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的指南的導(dǎo)言中的第一句話,有兩個意思,一是指明ant是基于java語言開發(fā)的,另一個意思是指明了ant是一個構(gòu)建工具。而在Maven的主頁上的第一句話Maven is a software project management and comprehension tool.指出了Maven是一個軟件項(xiàng)目管理工具,(在此段將Maven翻譯成軟件項(xiàng)目管理工具我是有疑義的,但網(wǎng)上查看資料都是這樣翻譯的,而且Project Management直譯的確有項(xiàng)目管理的意思,晚些時候再討論此處)。
                  單純的從字面意思上來理解,根本覺得ant與Maven是風(fēng)馬牛不相及的,而大家對于這兩個工具為什么會劃上等號,我覺得要從本質(zhì)上來看Ant與Maven所做的工作了。
                  Ant既然是構(gòu)建工具,那ant可以做哪些事呢?編譯代碼、單元測試、生成文檔、打包、制作安裝包、混淆代碼、部署等等,ant的功能可以說是非常強(qiáng)大的,不過整個構(gòu)建過程(構(gòu)建的生命周期)里需要做哪些事情,完全是需要我們自己思考定義的。
                  Maven真正所做的工作其實(shí)和ant差不多,也是編譯代碼、單元測試、生成文檔等等,那到底這兩個工具間有什么異同呢?
                  我想真正的差別還是體現(xiàn)在了思想上,在Maven的介紹頁中(http://maven.apache.org/what-is-maven.html)提到Maven最初是在構(gòu)建處理Jakarta Turbine項(xiàng)目的時候,發(fā)現(xiàn)這個項(xiàng)目的幾個工程的ant構(gòu)建腳本只有很細(xì)微的差別,于是Maven的作者想將構(gòu)建工程標(biāo)準(zhǔn)化,對構(gòu)建過程提供了一個指導(dǎo)性的思想,將項(xiàng)目構(gòu)建生命周期具體化,(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)由此我想,為什么Maven的名稱定義為Maven,可以認(rèn)為Maven在思想上提供了專家級的意見的原因吧。
          項(xiàng)目的構(gòu)建生命周期被具體化后,首先是減少了對構(gòu)建腳本的維護(hù),讓多個項(xiàng)目構(gòu)建生命周期進(jìn)行重用(也沒啥重用的,反正用Maven生命周期都一樣),讓開發(fā)人員都使用這一套規(guī)范。
                  當(dāng)然,很多人是不吃這一套的,Maven強(qiáng)制開發(fā)人員接受自己定義構(gòu)建標(biāo)準(zhǔn)除了讓人感覺不自由、不靈活外,且擔(dān)心Maven處理構(gòu)建生命周期時,內(nèi)部產(chǎn)生未知問題。還有一些小型項(xiàng)目,根本不需要如此完善的構(gòu)建生命周期,使用Maven提供的構(gòu)建生命周期,只是帶來了不必要的復(fù)雜性。
                  所以Maven也不是萬金油,仍然需要根據(jù)項(xiàng)目的實(shí)際情況進(jìn)行選擇,對于涉及人員較多的大型項(xiàng)目,且在軟件生命周期上與Maven的標(biāo)準(zhǔn)保持一致的情況下,就可以選擇使用Maven。而對于靈活性要求較高、或者一次性的項(xiàng)目,使用Ant足矣。
          posted on 2007-04-28 14:40 SoulEngineer 閱讀(318) 評論(2)  編輯  收藏 所屬分類: maven

          FeedBack:
          # re: Maven - 專家級工具1[未登錄] 2007-04-28 15:35 Jerry
          樓主寫的不錯,ant和maven并非 “既生瑜,何生亮”,而是各有千秋,兩個工具的定位不同,以此想到現(xiàn)在不少軟件公司的所謂的架構(gòu)師在使用工具的時候根本就不去深入的思考工具,而是隨大流,流行什么就用什么,這兩個項(xiàng)目都很成功,是有她存在的道理的,希望樓主再接再勵,繼續(xù)就兩個工具做深入的剖析,比如ant是如何在項(xiàng)目中表現(xiàn)她的靈活性的,期待中,嘿嘿!!!  回復(fù)  更多評論
            
          # re: 思考Maven - 專家級工具1 2008-03-12 11:16 于翔
          確實(shí)啊,maven定義了自己的一套目錄布局,這樣對于大項(xiàng)目有一定的優(yōu)勢,但是對于小項(xiàng)目來說還不如ant直觀。  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 太仆寺旗| 庆城县| 亳州市| 宁陵县| 航空| 天峨县| 赞皇县| 双流县| 建湖县| 宁阳县| 洪江市| 渝中区| 昌宁县| 长宁县| 郑州市| 耒阳市| 洞头县| 无极县| 西和县| 黄平县| 濮阳市| 达拉特旗| 车致| 宜黄县| 玛曲县| 铁力市| 江津市| 高阳县| 漳平市| 普格县| 金昌市| 化德县| 阜宁县| 烟台市| 城口县| 佛山市| 荆门市| 湖南省| 江西省| 抚远县| 河西区|