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

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

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

    隨筆 - 3  文章 - 7  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(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是一個軟件項目管理工具,(在此段將Maven翻譯成軟件項目管理工具我是有疑義的,但網(wǎng)上查看資料都是這樣翻譯的,而且Project Management直譯的確有項目管理的意思,晚些時候再討論此處)。
            單純的從字面意思上來理解,根本覺得ant與Maven是風(fēng)馬牛不相及的,而大家對于這兩個工具為什么會劃上等號,我覺得要從本質(zhì)上來看Ant與Maven所做的工作了。
            Ant既然是構(gòu)建工具,那ant可以做哪些事呢?編譯代碼、單元測試、生成文檔、打包、制作安裝包、混淆代碼、部署等等,ant的功能可以說是非常強(qiáng)大的,不過整個構(gòu)建過程(構(gòu)建的生命周期)里需要做哪些事情,完全是需要我們自己思考定義的。
            Maven真正所做的工作其實和ant差不多,也是編譯代碼、單元測試、生成文檔等等,那到底這兩個工具間有什么異同呢?
            我想真正的差別還是體現(xiàn)在了思想上,在Maven的介紹頁中(http://maven.apache.org/what-is-maven.html)提到Maven最初是在構(gòu)建處理Jakarta Turbine項目的時候,發(fā)現(xiàn)這個項目的幾個工程的ant構(gòu)建腳本只有很細(xì)微的差別,于是Maven的作者想將構(gòu)建工程標(biāo)準(zhǔn)化,對構(gòu)建過程提供了一個指導(dǎo)性的思想,將項目構(gòu)建生命周期具體化,(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)由此我想,為什么Maven的名稱定義為Maven,可以認(rèn)為Maven在思想上提供了專家級的意見的原因吧。
    項目的構(gòu)建生命周期被具體化后,首先是減少了對構(gòu)建腳本的維護(hù),讓多個項目構(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)生未知問題。還有一些小型項目,根本不需要如此完善的構(gòu)建生命周期,使用Maven提供的構(gòu)建生命周期,只是帶來了不必要的復(fù)雜性。
            所以Maven也不是萬金油,仍然需要根據(jù)項目的實際情況進(jìn)行選擇,對于涉及人員較多的大型項目,且在軟件生命周期上與Maven的標(biāo)準(zhǔn)保持一致的情況下,就可以選擇使用Maven。而對于靈活性要求較高、或者一次性的項目,使用Ant足矣。
    posted @ 2007-04-29 06:57 SoulEngineer 閱讀(1301) | 評論 (2)編輯 收藏
          有可能出自兼容性的考慮、或者是靈活性的考慮、又或者是考慮去除某些用戶心理上的FUD,或者幾者兼有之,反正Maven是支持Ant腳本的執(zhí)行的。(具體請看Guide to using Ant with Maven, http://maven.apache.org/guides/mini/guide-using-ant.html)
          Maven將Ant作為一種包含的關(guān)系存在,我們可以想象的到Maven應(yīng)該是在某些方面有超越Ant的表現(xiàn)的,比如在功能上,Maven提供的網(wǎng)站生成與包依賴管理管理特色功能是Ant沒有原生提供的。
          比如包依賴管理,包依賴管理真的是很強(qiáng)大且實用的功能,想想我們每個工程都有無數(shù)的第三方包需要管理,而這些包進(jìn)行人工管理(想想人工分析包的版本,第三方包與包之間的依賴等等)真的是一件令人痛苦的事情,引入包依賴管理后,包統(tǒng)一自動管理是多么美妙的一件事情?當(dāng)然這個功能想用在Ant中也不是不行的!(具體可以看看江南白衣的<<做環(huán)保主義者,用Maven2 管理Java類庫>>(
    http://www.tkk7.com/calvin/archive/2006/03/19/36098.html),由于是Ant去調(diào)用了Maven,Maven和Ant肯定是并存于工程中了,也許這樣會讓一些Ant的鐵桿Fans會覺得這樣在工程中并不干凈了,只是需要Maven提供的一個額外功能就引進(jìn)了整個Maven,如果是這樣, Ant+Ivy的組合對包進(jìn)行依賴管理可以是另一種選擇。
          對于網(wǎng)站的生成,個人感覺這個Ant是可以做到的,提供對應(yīng)的插件就行了!在google中搜索到這個網(wǎng)站AntDoc web site(http://antdoc.free.fr)好像是提供了類似功能,不過可惜的是我這里打開不了這個網(wǎng)站,并不能肯定是否可行。
          這樣子比較下來,好像Ant與Maven又回到了原點,至少Maven能得到的,Ant一樣能做到。
          總結(jié)一下,我們可不可以這樣子理解,Maven以一種包含的關(guān)系提供對Ant腳本的支持,只是在內(nèi)部Plug-in提供功能的基礎(chǔ)上提供了另一種選擇罷了,這樣的話我們在Maven中使用Ant并沒有脫離Maven所制定的標(biāo)準(zhǔn),仍然受到了Maven標(biāo)準(zhǔn)的約束。而Ant在調(diào)用Maven包管理,或者使用類似功能的時候,只是類似于命令行調(diào)用了對應(yīng)的命令(插件)罷了,而插件真正調(diào)用的,還是Maven的內(nèi)容。
        我覺得至少可以看出Maven與Ant非競爭對手的關(guān)系,必竟也都是一家人(都為Apache一級項目),我想還是項目粒度的問題,兩人工具都有生存領(lǐng)域,在技術(shù)選型的時候,根據(jù)項目的特性再選擇對應(yīng)的工具吧。
    posted @ 2007-04-28 21:47 SoulEngineer 閱讀(2587) | 評論 (3)編輯 收藏
    一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是一個軟件項目管理工具,(在此段將Maven翻譯成軟件項目管理工具我是有疑義的,但網(wǎng)上查看資料都是這樣翻譯的,而且Project Management直譯的確有項目管理的意思,晚些時候再討論此處)。
            單純的從字面意思上來理解,根本覺得ant與Maven是風(fēng)馬牛不相及的,而大家對于這兩個工具為什么會劃上等號,我覺得要從本質(zhì)上來看Ant與Maven所做的工作了。
            Ant既然是構(gòu)建工具,那ant可以做哪些事呢?編譯代碼、單元測試、生成文檔、打包、制作安裝包、混淆代碼、部署等等,ant的功能可以說是非常強(qiáng)大的,不過整個構(gòu)建過程(構(gòu)建的生命周期)里需要做哪些事情,完全是需要我們自己思考定義的。
            Maven真正所做的工作其實和ant差不多,也是編譯代碼、單元測試、生成文檔等等,那到底這兩個工具間有什么異同呢?
            我想真正的差別還是體現(xiàn)在了思想上,在Maven的介紹頁中(http://maven.apache.org/what-is-maven.html)提到Maven最初是在構(gòu)建處理Jakarta Turbine項目的時候,發(fā)現(xiàn)這個項目的幾個工程的ant構(gòu)建腳本只有很細(xì)微的差別,于是Maven的作者想將構(gòu)建工程標(biāo)準(zhǔn)化,對構(gòu)建過程提供了一個指導(dǎo)性的思想,將項目構(gòu)建生命周期具體化,(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)由此我想,為什么Maven的名稱定義為Maven,可以認(rèn)為Maven在思想上提供了專家級的意見的原因吧。
    項目的構(gòu)建生命周期被具體化后,首先是減少了對構(gòu)建腳本的維護(hù),讓多個項目構(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)生未知問題。還有一些小型項目,根本不需要如此完善的構(gòu)建生命周期,使用Maven提供的構(gòu)建生命周期,只是帶來了不必要的復(fù)雜性。
            所以Maven也不是萬金油,仍然需要根據(jù)項目的實際情況進(jìn)行選擇,對于涉及人員較多的大型項目,且在軟件生命周期上與Maven的標(biāo)準(zhǔn)保持一致的情況下,就可以選擇使用Maven。而對于靈活性要求較高、或者一次性的項目,使用Ant足矣。
    posted @ 2007-04-29 06:57 SoulEngineer 閱讀(1301) | 評論 (2)編輯 收藏
          有可能出自兼容性的考慮、或者是靈活性的考慮、又或者是考慮去除某些用戶心理上的FUD,或者幾者兼有之,反正Maven是支持Ant腳本的執(zhí)行的。(具體請看Guide to using Ant with Maven, http://maven.apache.org/guides/mini/guide-using-ant.html)
          Maven將Ant作為一種包含的關(guān)系存在,我們可以想象的到Maven應(yīng)該是在某些方面有超越Ant的表現(xiàn)的,比如在功能上,Maven提供的網(wǎng)站生成與包依賴管理管理特色功能是Ant沒有原生提供的。
          比如包依賴管理,包依賴管理真的是很強(qiáng)大且實用的功能,想想我們每個工程都有無數(shù)的第三方包需要管理,而這些包進(jìn)行人工管理(想想人工分析包的版本,第三方包與包之間的依賴等等)真的是一件令人痛苦的事情,引入包依賴管理后,包統(tǒng)一自動管理是多么美妙的一件事情?當(dāng)然這個功能想用在Ant中也不是不行的!(具體可以看看江南白衣的<<做環(huán)保主義者,用Maven2 管理Java類庫>>(
    http://www.tkk7.com/calvin/archive/2006/03/19/36098.html),由于是Ant去調(diào)用了Maven,Maven和Ant肯定是并存于工程中了,也許這樣會讓一些Ant的鐵桿Fans會覺得這樣在工程中并不干凈了,只是需要Maven提供的一個額外功能就引進(jìn)了整個Maven,如果是這樣, Ant+Ivy的組合對包進(jìn)行依賴管理可以是另一種選擇。
          對于網(wǎng)站的生成,個人感覺這個Ant是可以做到的,提供對應(yīng)的插件就行了!在google中搜索到這個網(wǎng)站AntDoc web site(http://antdoc.free.fr)好像是提供了類似功能,不過可惜的是我這里打開不了這個網(wǎng)站,并不能肯定是否可行。
          這樣子比較下來,好像Ant與Maven又回到了原點,至少Maven能得到的,Ant一樣能做到。
          總結(jié)一下,我們可不可以這樣子理解,Maven以一種包含的關(guān)系提供對Ant腳本的支持,只是在內(nèi)部Plug-in提供功能的基礎(chǔ)上提供了另一種選擇罷了,這樣的話我們在Maven中使用Ant并沒有脫離Maven所制定的標(biāo)準(zhǔn),仍然受到了Maven標(biāo)準(zhǔn)的約束。而Ant在調(diào)用Maven包管理,或者使用類似功能的時候,只是類似于命令行調(diào)用了對應(yīng)的命令(插件)罷了,而插件真正調(diào)用的,還是Maven的內(nèi)容。
        我覺得至少可以看出Maven與Ant非競爭對手的關(guān)系,必竟也都是一家人(都為Apache一級項目),我想還是項目粒度的問題,兩人工具都有生存領(lǐng)域,在技術(shù)選型的時候,根據(jù)項目的特性再選擇對應(yīng)的工具吧。
    posted @ 2007-04-28 21:47 SoulEngineer 閱讀(2587) | 評論 (3)編輯 收藏
    第一次開技術(shù)博,歡迎大家光臨!
    posted @ 2007-04-28 14:45 SoulEngineer 閱讀(170) | 評論 (0)編輯 收藏
    僅列出標(biāo)題  
    主站蜘蛛池模板: 视频免费1区二区三区| 日韩精品亚洲专区在线影视| 国产羞羞的视频在线观看免费| 免费成人av电影| 四虎国产精品永免费| 亚洲福利精品电影在线观看| h视频在线观看免费| 亚洲色无码专区在线观看| A片在线免费观看| 久久久久亚洲AV无码永不| 色播精品免费小视频| 亚洲真人无码永久在线观看| 国产精品美女自在线观看免费| 国产成人亚洲综合a∨| 久久久久亚洲精品中文字幕| 国产一区二区免费视频| 亚洲欧洲国产成人精品| 国产电影午夜成年免费视频| 亚洲熟妇无码av另类vr影视| 免费人妻av无码专区| 91在线视频免费观看| 精品亚洲成a人片在线观看| 一本无码人妻在中文字幕免费| 日韩国产欧美亚洲v片| 中文亚洲AV片在线观看不卡| 特级无码毛片免费视频尤物| 天堂亚洲国产中文在线| 亚洲VA综合VA国产产VA中| 欧洲人免费视频网站在线| 亚洲校园春色另类激情| 亚洲AV日韩精品一区二区三区| 黄网站免费在线观看| 亚洲日韩亚洲另类激情文学| 在线观看国产区亚洲一区成人 | 国产91免费在线观看| 美女露100%胸无遮挡免费观看| 亚洲AV无码乱码在线观看富二代| 18禁网站免费无遮挡无码中文| 窝窝影视午夜看片免费| 亚洲一区二区三区首页| 免费少妇a级毛片|