<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

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

    FeedBack:
    # re: 思考Maven - 專家級(jí)工具1 2007-04-29 08:48 xyz20003
    我倒覺(jué)得maven2更適合小項(xiàng)目,因?yàn)榇箜?xiàng)目的分模塊構(gòu)建,maven2并沒(méi)有提供很良好的支持,也許是我用的還不熟練,感覺(jué)只要模塊間的邏輯復(fù)雜起來(lái),maven就顯得捉襟見(jiàn)肘了。迫不得已再使用ant或者其他工具進(jìn)行調(diào)整。

    我現(xiàn)在無(wú)法放棄maven2轉(zhuǎn)回ant的原因有三個(gè):

    一。是repository的管理,用了maven2就不用每次再去找依賴jar包了,而且repository每個(gè)項(xiàng)目都可以共用。發(fā)布的src包也比以前小了很多。

    二。是site以及report,設(shè)置好report plugin就可以得到checkstyle,pmd,cpd,findbugs,cobertura,taglist的報(bào)表,實(shí)在是比ant中的配置簡(jiǎn)潔了百倍啊。

    三。jetty,雖然只是一個(gè)插件,但是因?yàn)樘糜昧耍詥为?dú)提出來(lái)。想要演示效果的時(shí)候,使用嵌入數(shù)據(jù)庫(kù)hsqldb,再用上mvn clean jetty:run。怎么都感覺(jué)比使用tomcat方便,selenium也支持使用jetty進(jìn)行集成測(cè)試,唉,可惜我還不太會(huì)用,每次都要開(kāi)兩個(gè)工程。

      回復(fù)  更多評(píng)論
      
    # re: 思考Maven - 專家級(jí)工具1 2007-04-29 09:54 GHawk
    Maven2 的profile filter功能相當(dāng)好用,每個(gè)開(kāi)發(fā)者可以使用自己的profile,而且很容易就可以實(shí)現(xiàn)不同的配置策略(debug, production)  回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成人免费毛片内射美女APP | 久久久久亚洲AV无码专区首| 精品亚洲国产成人| 久久青草精品38国产免费| 欧洲亚洲国产清在高| 免费在线中文日本| 亚洲AV日韩精品久久久久久| 久久久久国色av免费看| 亚洲午夜精品久久久久久人妖| 亚洲色欲色欲www| 国产精品无码免费播放| 亚洲国产精品99久久久久久| 永久黄网站色视频免费直播| 亚洲精品无码成人| 国产一级淫片免费播放电影| 色婷婷综合缴情综免费观看| 亚洲日韩精品一区二区三区无码 | 久久狠狠躁免费观看| 久久精品夜色国产亚洲av| 18禁超污无遮挡无码免费网站| 成人a视频片在线观看免费| 久久亚洲AV成人无码国产最大| 国内永久免费crm系统z在线| 久久亚洲私人国产精品| 在线看片免费人成视久网| 亚洲视频在线观看2018| 国产精品美女自在线观看免费| 亚洲精品在线播放| 在线不卡免费视频| 中文字幕手机在线免费看电影| 大学生a级毛片免费观看| 一区二区三区免费视频播放器| 国产成人福利免费视频| 亚洲AV无码国产一区二区三区| 国产成人精品免费视频大| 亚洲久悠悠色悠在线播放| 国产亚洲AV夜间福利香蕉149| 无码的免费不卡毛片视频| 日韩精品亚洲人成在线观看| 美女被免费视频网站a国产| 乱人伦中文视频在线观看免费|