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

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

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

    小石頭
    Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
    posts - 91,comments - 22,trackbacks - 0

    用Maven進行項目管理

    ?????原作者:Rob?Herbst
    ????當您的項目逐漸變得龐大和復雜時,最好使用一種構建工具來自動構建您的項目。例如,一個典型的java項目,每次構建時都要經(jīng)歷編譯java源代碼,把class文件打成.jar包,生成javadocs文檔等步驟。這些步驟都可以用構建工具幫您自動完成。說到構建工具,大家肯定都知道m(xù)ake,但make是依賴具體操作系統(tǒng)的。Java-centric選擇了Ant,一種可以跨平臺的使用xml來替換Makefile糟糕語法的構建工具。
    ????來自Apache軟件組織的構建工具Maven更可能成為您的選擇,Maven不僅提供了out-of-the-box的解決方案來統(tǒng)一處理構建相關的任務,還提供了信息統(tǒng)計的功能。使您的開發(fā)團隊可以更好地跟蹤項目的進展情況。

    Maven的原理
    ????作為構建工具,Maven和Ant一樣,利用構建配置文件進行編譯,打包,測試等操作。您可以用Maven自帶的功能進行任何的操作,但前提是做好了相應的配置。當然,修改已有的模板來開始新的項目是個好方法。除非您在寫特有的task,不然都會有target重用的問題。
    ????Maven進行了一些改進。您將項目配置內容寫成XML文件,并且可以使用很多Maven自帶的功能。另外還可以在Maven項目中調用任何Ant的task。
    ????Maven自帶的"goals"有以下功能:
    ??????編譯源代碼
    ????產(chǎn)生Javadoc文檔
    ????運行unit測試
    ????源代碼文法分析
    ????產(chǎn)生違反團隊編碼規(guī)范的詳細報告
    ????產(chǎn)生CVS最新提交報告
    ????產(chǎn)生CVS更改最頻繁的文件報告和提交最頻繁的開發(fā)人員報告
    ????產(chǎn)生可以交叉引用的HTML格式的源代碼,等等。

    ????Maven的功能是通過眾多的插件來實現(xiàn)的。在Maven的網(wǎng)站上可以找到一個Maven插件列表。例如,創(chuàng)建EAR包和控制J2EE應用服務器的插件。
    ????Maven的另外一個特色是利用中央構建資源庫去訪問您項目中需要的.jars(像Perl's?CPAN)。您只用列出需要的.jars及相應版本,Maven會自動下載。當?shù)谝淮芜\行Maven,或者運行一個新的goal時,可以在控制臺上看到中央構建資源庫下載.jars的詳細過程。這一功能不僅使Maven更加容易使用,而且能幫您省下不少搜集維護本地或遠程構建資源庫中.jars版本的時間和精力。
    ????Maven的易用性來源于配置過程的自然性。Out?of?the?box,不僅提供了項目構建的基本步驟,還可以自定義項目對象模型(POM)。POM基于易于編輯的XML格式,由不同元素的名稱和屬性組成。一旦您完成POM的配置,就可以在構造過程中使用很多Maven自帶的激動人心的功能。
    ????Maven也易于自定義,特別是當您已經(jīng)熟悉Ant后。您可以增加新的功能或鉤子到已有的構造過程以添加自定義的步驟。通過修改maven.xml文件可以添加自定義的功能。

    Maven概述
    ????Maven最基本的運行單位是goal。例如,當您在控制臺運行如下命令:
    ????







    maven?site:generate



    ????Maven會去訪問并執(zhí)行generate?goal?of?site插件。如果想要查看配置文件中所有的goals,輸入:







    maven?-g



    ????對于任何一個團隊,運行maven?site:generate的goal生成的站點可以給團隊成員展示項目當前的狀態(tài)。第一頁是單元測試的報告,提供單元測試的技術統(tǒng)計結果。
    ????Checkstyle插件對于在團隊中堅持編碼規(guī)范很有幫組。產(chǎn)生的報告中列出了在多少個文件里面出現(xiàn)了多少個違反編碼規(guī)范的統(tǒng)計信息,并列出了相應文件和行號。通過點擊相應鏈接,可以輕易的找到代碼中違反編碼規(guī)范的地方。
    ????事實上,Maven的開發(fā)者也在自己的項目中使用Maven來管理,所以你可以看到在開發(fā)Maven過程中產(chǎn)生的Checkstyle報告,如圖一
    按此在新窗口瀏覽圖片
    圖一.?Checkstyle報告摘要

    ????在摘要之后就是按照文件為單位組織的違反編碼規(guī)范的報告,如圖二。
    按此在新窗口瀏覽圖片
    圖二.?Checkstyle詳細報告

    ????CVS插件可以產(chǎn)生關于代碼提交的統(tǒng)計報告,包括以下內容:
    ????更改日志報告:列出最新提交的文件及提交日期,作者和注釋。
    ????文件活躍度報告:提供更改最頻繁文件的詳細內容
    ????開發(fā)人員活躍度報告:提供最新提交文件的統(tǒng)計報告及每個開發(fā)人員提交的文件數(shù)。
    ????以上報告文檔同樣使用在Maven開發(fā)項目中,最新的一次更改日志報告如圖三。
    按此在新窗口瀏覽圖片
    圖三.?更改日志報告

    試一試
    ????如果您已經(jīng)準備好要使用Maven,下面是安裝的步驟.
    ??????到Apache下載Maven的最新版本.
    ??????解壓到系統(tǒng)的某個目錄,比如C:\maven或者~/maven.
    ??????設置MAVEN_HOME環(huán)境變量指向解壓到的目錄.
    ??????確認您已經(jīng)配置好JAVA_HOME環(huán)境變量.
    ??????在系統(tǒng)path環(huán)境變量中添加MAVEN_HOME/bin.

    ??????現(xiàn)在,在控制臺輸入
    ????






    maven?-v



    ??????您可以看到下面的輸出:
    ???????__??__
    ??????|??\/??|__?_Apache__?___
    ??????|?|\/|?/?_`?\?V?/?-_)?'?\??~?intelligent?projects?~
    ??????|_|??|_\__,_|\_/\___|_||_|??v.?1.0-beta-10

    ??????Maven可以工作了!想看所有可用的Maven選項,輸入:
    ??????






    maven?-h



    ??????所有可用的goals:
    ????






    maven?-g



    ??????您將看到可用的插件列表及其提供的goals:

    ????Available?[Plugins]?/?Goals
    ??????```````````````````````````
    ??????[ant]?:?Generate?an?Ant?build?file
    ????????generate-build?.............?Generate?an?Ant
    ?????????????????????????????????????build?file

    ??????[antlr]?(?NO?DEFAULT?GOAL?)
    ????????generate?...................?Generate?source?
    ?????????????????????????????????????from?antlr?grammars
    ????????prepare-filesystem?.........?Make?any?necessary
    ????????????????????????????????????directories?for?antlr
    ????????????????????????????????????processing

    ??????再往下,可以看到[wizard]插件和其goal?ui。想運行那個goal就輸入:
    ??????






    maven?wizard:ui



    ??????您可以在控制臺上看到Maven自動到中央構建資源庫或網(wǎng)上下載需要的.jar包.
    ????我們在進一步,創(chuàng)建一個簡單的項目。例如,創(chuàng)建一個名為maven-sample的目錄(~/maven-sample或者C:\maven-sample)。運行如下命令:
    ??????






    maven?-D?package=com.oreillynet.mavensample?genapp



    ??????maven會自動創(chuàng)建一個標準的項目文件。上面的package屬性是必須的,如果輸入錯誤或不輸會編譯錯誤。
    ????現(xiàn)在,運行命令:
    ??????






    maven?site:generate



    ??????Maven會依據(jù)配置好的POM文件(project.xml)為您項目生成相應的站點。如果是第一次運行,還可以看到Maven會到中央構建資源庫或網(wǎng)上下載必須的.jars包。
    ????運行這個goal,Maven會為您編譯源代碼,拷貝conf目錄里的資源文件到類文件classes的目錄,生成Javadoc文檔以及項目分析報告??梢钥吹?一個目標含有很多的功能!
    ??????進入target目錄,您可以看到site:generate?goal生成的文件。target目錄下的docs目錄存放著Maven為您的項目產(chǎn)生的報告文檔。

    Maven中使用Ant任務
    ????要整合Ant任務到Maven中,您需要創(chuàng)建名為maven.xml的文件并存放到project.xml文件的目錄。在maven.xml文件中寫入:







    <project?default="myGoal">
    ??<goal?name="myGoal">
    ????<echo>Hello?Maven!</echo>
    ??</goal>
    </project>



    ??????其中






    <echo>


    是Ant中用于輸出的task。同樣,在自定義的goals中也可以運行任何Ant?task。
    ????保存maven.xml文件,在project.xml和maven.xml所在的目錄中運行
    ????






    maven



    ??????您可以看到以下輸出:
    ??????myGoal:?
    ?????????[echo]?Hello?Maven!
    ??????BUILD?SUCCESSFUL
    ??????Total?time:??1?seconds

    自定義Maven
    ??????到目前為止,您已經(jīng)看到一個簡單的項目是怎樣運行的,您還可以按需要自定義Maven。在您最喜歡文本編輯器中打開project.xml文件,可以看到帶有注釋的項目文件。您可以把這作為擴展的基礎,根據(jù)項目的需要添加需要的代碼和資源。
    ????如果要使用Checkstyle插件,需要在project.properties文件中指定使用的編碼規(guī)范。默認使用的是標準的Sun和Turbine的編碼規(guī)范。您也可以通過設置






    maven.checkstyle.properties=team-checkstyle.xml


    來使用團隊自己的編碼規(guī)范。
    ????Checksytle插件會使用team-checkstyle.xml文件作為編碼規(guī)范檢查的依據(jù)。要創(chuàng)建自己的編碼規(guī)范文件,可以使用Eclipse插件,或者修改標準的編碼規(guī)范。解壓MAVEN_HOME/plugins目錄下的maven-checkstyle-plugin.jar文件,在解壓目錄中的plugin-resources目錄中可以找到sun_checks.xml和tuibine_checks.xml兩個文件。選擇和您團隊最接近的編碼規(guī)范再根據(jù)需要修改一下就可以了。
    ????要更改項目產(chǎn)生的站點的默認顏色,可以在project.properites文件中修改。顏色屬性要用標準的HTML語法。
    ????






    maven.ui.section.background=#cfcfbb
    ??????maven.ui.banner.border.top=#cfcfbb
    ??????maven.ui.banner.background=#cfcfbb
    ??????maven.ui.source.background=#cfcfbb




    ??????如果您想定義在ibiblio.org的Maven構建資源庫中沒有的公司自己的項目相關性,您可以照下面定義
    ????






    <dependency>
    ????????<id>SomeJar</id>
    ????????<jar>someJar1.2.jar</jar>
    ??????</dependency>



    ??????然后,您需要將somJar1.2.jar文件放到您自己的中央構建資源庫目錄中。該目錄由project.properties文件中的maven.repo.local屬性指定。默認為${maven.home.local}/repository或${user.home}/.maven。在project.xml文件中添加下列<reports>元素還可以自定義生成的報告文檔







    <reports>
    ??<report>maven-checkstyle-plugin</report>
    ??<report>maven-changelog-plugin</report>
    ??<report>maven-developer-activity-plugin</report>
    ??<report>maven-file-activity-plugin</report>
    ??<report>maven-javadoc-plugin</report>
    ??<report>maven-jdepend-plugin</report>
    ??<report>maven-junit-report-plugin</report>
    ??<report>maven-jxr-plugin</report>
    ??<report>maven-statcvs-plugin</report>
    ??<report>maven-simian-plugin</report>
    </reports>




    ??????除了最后兩個,其他都是默認配置的。maven-statcvs-plugin產(chǎn)生CVS統(tǒng)計報告,maven-simian-plugin可以識辨程序里重復的代碼。一旦您自己定義了一個






    <reports>


    元素,將會覆蓋掉所有默認文檔配置。

    總結
    ????本文介紹了Maven的基本功能。用Maven來管理您的項目可以改善團隊開發(fā)過程并可以讓您更好的了解當前項目的情況。
    ????在此感謝Maven的開發(fā)者及開發(fā)社區(qū)的朋友,是他們創(chuàng)造出了這么卓越的構建工具!
    posted on 2007-02-12 12:32 小石頭 閱讀(539) 評論(0)  編輯  收藏 所屬分類: maven、ant
    主站蜘蛛池模板: 免费观看成人久久网免费观看| 亚洲日本VA中文字幕久久道具| 亚洲国产成人久久精品app| 国产精品白浆在线观看免费| 免费A级毛片在线播放不收费| 亚洲国产AV一区二区三区四区 | 久久久久亚洲av无码专区导航| a毛片久久免费观看| 亚洲人成网站色在线入口| 窝窝影视午夜看片免费| 亚洲精品久久久www | 97青青草原国产免费观看| 亚洲资源在线观看| 永久免费视频网站在线观看| 亚洲AV综合色区无码二区偷拍| 97视频免费在线| 亚洲成a人片在线不卡一二三区 | 中文字幕无码精品亚洲资源网久久| 无码日韩人妻av一区免费| 一进一出60分钟免费视频| 亚洲精品无码成人片在线观看| 日本亚洲高清乱码中文在线观看| 亚洲成av人片在线观看天堂无码| www一区二区www免费| 内射干少妇亚洲69XXX| 免费av欧美国产在钱| 免费一区二区三区在线视频| 亚洲欧洲无码AV电影在线观看| 四虎成人精品永久免费AV| 国产成人亚洲合集青青草原精品| 国产jizzjizz视频全部免费| 在线免费播放一级毛片| 亚洲精品无码久久毛片波多野吉衣| 毛片在线免费视频| 三年在线观看免费观看完整版中文 | 欧美激情综合亚洲一二区| 久久亚洲av无码精品浪潮| 91精品免费国产高清在线| 免费夜色污私人影院网站电影| 亚洲av福利无码无一区二区| 午夜一区二区免费视频|