久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用Maven進(jìn)行項(xiàng)目管理

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

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

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

Maven概述
Maven最基本的運(yùn)行單位是goal。例如,當(dāng)您在控制臺(tái)運(yùn)行如下命令:
maven site:generate

Maven會(huì)去訪問(wèn)并執(zhí)行g(shù)enerate goal of site插件,。如果想要查看配置文件中所有的goals,,輸入:
maven -g

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

在摘要之后就是按照文件為單位組織的違反編碼規(guī)范的報(bào)告,如圖二,。
image
圖二. Checkstyle詳細(xì)報(bào)告

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

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

現(xiàn)在,在控制臺(tái)輸入
maven -v

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

Maven可以工作了!想看所有可用的Maven選項(xiàng),輸入:
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,。想運(yùn)行那個(gè)goal就輸入:
maven wizard:ui

您可以在控制臺(tái)上看到Maven自動(dòng)到中央構(gòu)建資源庫(kù)或網(wǎng)上下載需要的.jar包.
我們?cè)谶M(jìn)一步,創(chuàng)建一個(gè)簡(jiǎn)單的項(xiàng)目。例如,創(chuàng)建一個(gè)名為maven-sample的目錄(~/maven-sample或者C:\maven-sample),。運(yùn)行如下命令:
maven -D package=com.oreillynet.mavensample genapp

maven會(huì)自動(dòng)創(chuàng)建一個(gè)標(biāo)準(zhǔn)的項(xiàng)目文件,。上面的package屬性是必須的,如果輸入錯(cuò)誤或不輸會(huì)編譯錯(cuò)誤,。
現(xiàn)在,運(yùn)行命令:
maven site:generate

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

Maven中使用Ant任務(wù)
要整合Ant任務(wù)到Maven中,,您需要?jiǎng)?chuàng)建名為maven.xml的文件并存放到project.xml文件的目錄。在maven.xml文件中寫入:
<project default="myGoal">
  <goal name="myGoal">
    <echo>Hello Maven!</echo>
  </goal>
</project>

其中
<echo>
是Ant中用于輸出的task,。同樣,,在自定義的goals中也可以運(yùn)行任何Ant task。
保存maven.xml文件,,在project.xml和maven.xml所在的目錄中運(yùn)行
maven

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

自定義Maven
到目前為止,您已經(jīng)看到一個(gè)簡(jiǎn)單的項(xiàng)目是怎樣運(yùn)行的,,您還可以按需要自定義Maven,。在您最喜歡文本編輯器中打開project.xml文件,可以看到帶有注釋的項(xiàng)目文件。您可以把這作為擴(kuò)展的基礎(chǔ),,根據(jù)項(xiàng)目的需要添加需要的代碼和資源,。
如果要使用Checkstyle插件,需要在project.properties文件中指定使用的編碼規(guī)范,。默認(rèn)使用的是標(biāo)準(zhǔn)的Sun和Turbine的編碼規(guī)范,。您也可以通過(guò)設(shè)置
maven.checkstyle.properties=team-checkstyle.xml
來(lái)使用團(tuán)隊(duì)自己的編碼規(guī)范。
Checksytle插件會(huì)使用team-checkstyle.xml文件作為編碼規(guī)范檢查的依據(jù),。要?jiǎng)?chuàng)建自己的編碼規(guī)范文件,可以使用Eclipse插件,,或者修改標(biāo)準(zhǔn)的編碼規(guī)范。解壓MAVEN_HOME/plugins目錄下的maven-checkstyle-plugin.jar文件,,在解壓目錄中的plugin-resources目錄中可以找到sun_checks.xml和tuibine_checks.xml兩個(gè)文件,。選擇和您團(tuán)隊(duì)最接近的編碼規(guī)范再根據(jù)需要修改一下就可以了。
要更改項(xiàng)目產(chǎn)生的站點(diǎn)的默認(rèn)顏色,,可以在project.properites文件中修改,。顏色屬性要用標(biāo)準(zhǔn)的HTML語(yǔ)法。
maven.ui.section.background=#cfcfbb
      maven.ui.banner.border.top=#cfcfbb
      maven.ui.banner.background=#cfcfbb
      maven.ui.source.background=#cfcfbb


如果您想定義在ibiblio.org的Maven構(gòu)建資源庫(kù)中沒(méi)有的公司自己的項(xiàng)目相關(guān)性,,您可以照下面定義
<dependency>
        <id>SomeJar</id>
        <jar>someJar1.2.jar</jar>
      </dependency>

然后,,您需要將somJar1.2.jar文件放到您自己的中央構(gòu)建資源庫(kù)目錄中。該目錄由project.properties文件中的maven.repo.local屬性指定,。默認(rèn)為${maven.home.local}/repository或${user.home}/.maven,。在project.xml文件中添加下列<reports>元素還可以自定義生成的報(bào)告文檔
<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>


除了最后兩個(gè),其他都是默認(rèn)配置的,。maven-statcvs-plugin產(chǎn)生CVS統(tǒng)計(jì)報(bào)告,,maven-simian-plugin可以識(shí)辨程序里重復(fù)的代碼。一旦您自己定義了一個(gè)
<reports>
元素,,將會(huì)覆蓋掉所有默認(rèn)文檔配置,。

總結(jié)
本文介紹了Maven的基本功能。用Maven來(lái)管理您的項(xiàng)目可以改善團(tuán)隊(duì)開發(fā)過(guò)程并可以讓您更好的了解當(dāng)前項(xiàng)目的情況,。
在此感謝Maven的開發(fā)者及開發(fā)社區(qū)的朋友,是他們創(chuàng)造出了這么卓越的構(gòu)建工具!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多