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

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

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

    敏捷、分布式、ALM過程自動(dòng)化、企業(yè)應(yīng)用架構(gòu)
    posts - 14, comments - 0, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Maven項(xiàng)目管理理解與使用

    Posted on 2012-04-06 14:48 一酌散千憂 閱讀(495) 評(píng)論(0)  編輯  收藏 所屬分類: 敏捷過程方法

    項(xiàng)目經(jīng)理(Project manager)是項(xiàng)目的支柱與核心,維基百科的定義:項(xiàng)目經(jīng)理是項(xiàng)目管理方面的專家,負(fù)責(zé)項(xiàng)目的策劃、執(zhí)行和結(jié)束,即整個(gè)生命周期過程。項(xiàng)目經(jīng)理手中的“干將莫邪”便是軟件開發(fā)過程方法(software development process/software development life cycle (SDLC)),可能采取的有RUPRational Unified Process),敏捷等。

    其實(shí)軟件開發(fā)區(qū)分階段已經(jīng)廣為大家接受,普遍的概念即需要區(qū)分為分析、設(shè)計(jì)、實(shí)施、測(cè)試、發(fā)布,過程中會(huì)產(chǎn)生若干產(chǎn)物,如需求說明書、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等。若提及過程方法,如RUP的話,主要分為四大階段,先啟(Inception)、精華(Elaboration)、構(gòu)建(Construction)、交付(Transition)迭代的開發(fā)方式,而Scrum的核心概念則是Sprint

     

    Maven在項(xiàng)目管理中有那些幫助呢?Maven能夠從一個(gè)信息中心為項(xiàng)目提供構(gòu)建,報(bào)告,文檔編制等工作。在Maven官方介紹《What is maven》中介紹了maven的項(xiàng)目目標(biāo)(Objectives)(http://maven.apache.org/what-is-maven.html),如下:

    l         簡(jiǎn)化構(gòu)建過程

    l         提供統(tǒng)一的構(gòu)建系統(tǒng)

    l         提供項(xiàng)目質(zhì)量信息

    l         提供對(duì)于開發(fā)最佳實(shí)踐的指導(dǎo)

    l         允許對(duì)于新特性的透明整合

     

    對(duì)于Maven影響最為深刻的就是它的構(gòu)建系統(tǒng),幾乎貫穿了整個(gè)實(shí)施階段。作為對(duì)比我們參考一下RUPConstruction階段,以及Scrum的單個(gè)Sprint過程。

     

    RUPConstruction階段的目標(biāo):

    這個(gè)階段的目標(biāo)是澄清需求并基于架構(gòu)基線完成開發(fā)。

    l          通過優(yōu)化資源來縮減開支,并避免無意義的爭(zhēng)執(zhí)與返工。

    l          實(shí)用性與質(zhì)量兼具。

    l          盡快發(fā)布可用版本。

    l          完成對(duì)所有功能的分析、設(shè)計(jì)、開發(fā)、測(cè)試。

    l          采用增量迭代的模式完成開發(fā)并準(zhǔn)備交付。

    l          檢查項(xiàng)目發(fā)布的所有資源是否已經(jīng)準(zhǔn)備完全。

    l          形成項(xiàng)目組之間的并行開發(fā)。

     

    在《硝煙中的ScrumXP》一書中,介紹了作者實(shí)施Scrum的過程。在一個(gè)Sprint中,不是只有Sprint backlogburn down chat等,實(shí)施過程中的敏捷思想也是其中的核心,我們來看看敏捷信奉的一部分最佳實(shí)踐:

    l          簡(jiǎn)單設(shè)計(jì)(Simple Design

    l          結(jié)對(duì)編程(Pair Programming

    l          測(cè)試驅(qū)動(dòng)(Test-Driven Development

    l          小規(guī)模發(fā)布(Small Releases

    l          持續(xù)集成(Continuous Integration

    l          集體擁有代碼(Collective Code Ownership

    l          編碼標(biāo)準(zhǔn)(Coding Standard

     

    Maven對(duì)于上述目標(biāo)中的質(zhì)量(實(shí)用性與質(zhì)量,以測(cè)試驅(qū)動(dòng))、可用(可用版本,小規(guī)模)、資源管理等均能發(fā)揮較大的作用。主要是其定義了一套完整優(yōu)秀的構(gòu)建生命周期機(jī)制,其基本階段如下:

    l         validate驗(yàn)證項(xiàng)目正確性及依賴有效性

    l         compile編譯項(xiàng)目源碼

    l         test使用合適的單元測(cè)試框架對(duì)編譯后的源碼進(jìn)行測(cè)試,測(cè)試代碼不會(huì)被打包或發(fā)布

    l         package將編譯后的代碼以規(guī)定格式打包,如Jar

    l         integration-test將打包后的代碼放置于環(huán)境中進(jìn)行集成測(cè)試

    l         verify檢查打包的有效性并驗(yàn)證質(zhì)量標(biāo)準(zhǔn)

    l         install將包裝載入本地倉(cāng)庫(kù),以提供與其他項(xiàng)目的依賴

    l         deploy將包發(fā)布至遠(yuǎn)程倉(cāng)庫(kù)中

    其上每一個(gè)階段實(shí)際都分為前中后三個(gè)階段,用戶可以定義在每一個(gè)階段前后進(jìn)行自定義的操作,打造自己的構(gòu)建流程(如在某個(gè)階段執(zhí)行前制定特殊的配置文件,完成后再改回默認(rèn))。對(duì)于階段的實(shí)際使用方式,如:validate可以項(xiàng)目所有依賴有效,test可以針對(duì)dao層進(jìn)行單元測(cè)試,intergration-test可以對(duì)完整業(yè)務(wù)流程或服務(wù)層等進(jìn)行集成測(cè)試。

     

    在項(xiàng)目中實(shí)際使用的經(jīng)驗(yàn),對(duì)于標(biāo)簽的使用心得:

    1.<dependency> - 依賴標(biāo)簽,最重要的標(biāo)簽,也是Maven的基礎(chǔ)功能。

                  <dependency>

                         <groupId>junit</groupId>

                         <artifactId>junit</artifactId>

                         <version>4.8.1</version>

                         <scope>test</scope>

                  </dependency>

     

    2. <repository> - 資源倉(cāng)庫(kù),可以包含多個(gè),常用的有MavenJboss等,如下是公司內(nèi)建的Nexus資源庫(kù)。

    <repository>

                         <id>Suntang's Maven Repository</id>

                         <name>Suntang Nexus Repository</name>

                         <url>http://10.10.10.33:8081/nexus/content/groups/public</url>

                  </repository>

    3. <profile> - 解釋為情景模式可能較為合適。可以有多個(gè),在何種場(chǎng)景下會(huì)使用哪些屬性、插件等。如下例子便是當(dāng)缺失某個(gè)文件時(shí)激活。

    (感覺寫的不錯(cuò)的一篇,http://blog.csdn.net/turkeyzhou/article/details/4894657

    <profile>

     <activation>

    <file>

    <missing>target/generated-sources/axistools/wsdl2java/org/apache/maven</missing>

    </file>

    </activation>

     </profile>

    4.<build> - 構(gòu)建過程。是進(jìn)行整個(gè)項(xiàng)目管理的核心標(biāo)簽。重點(diǎn)需要掌握的知識(shí)就是生命周期。

    http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

    下面的例子就是制定了打包時(shí)的資源路徑,并且定義了最終打包的名稱。

     

           <build>

                  <resources>

                         <resource>

                                <directory>src/main/resources</directory>

                                <includes>

                                       <include>**/*</include>

                                </includes>

                         </resource>

                         <resource>

                                <directory>src/main/assembly</directory>

                                <includes>

                                       <include>**/*</include>

                                </includes>

                         </resource>

                  </resources>

     

                  <finalName>po</finalName>

           </build>

     

    4.< plugin > - 支持插件。如單元測(cè)試自動(dòng)化,之前提到的Ant的插件等。若有某些功能覺得不順手,可以嘗試官網(wǎng)找一下有沒有合適的插件(http://maven.apache.org/plugins/index.html)。

    下面的例子就是在集成測(cè)試中,只運(yùn)行后綴為TestSuitex.java的測(cè)試類

     

                         <plugin>

                                <groupId>org.apache.maven.plugins</groupId>

                                <artifactId>maven-surefire-plugin</artifactId>

                                <version>2.4.3</version>

                                <configuration>

                                       <junitArtifactName>junit:junit</junitArtifactName>

                                       <forkMode>once</forkMode>

                                </configuration>

                                <executions>

                                       <execution>

                                              <id>default-test</id>

                                              <phase>integration-test</phase>

                                              <goals>

                                                     <goal>test</goal>

                                              </goals>

                                              <configuration>

                                                     <skip>false</skip>

                                                     <includes>

                                                            <include>**/*TestSuitex.java</include>

                                                     </includes>

                                              </configuration>

                                       </execution>

                                </executions>

                         </plugin>

     


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一欧洲中文字幕在线| 一区二区三区观看免费中文视频在线播放 | 国产成人精品免费视| 青青免费在线视频| 亚洲高清无在码在线无弹窗| 亚洲国产中文v高清在线观看| 亚洲精品蜜夜内射| 337p欧洲亚洲大胆艺术| jizzjizz亚洲| 永久免费看bbb| 久久久久久国产精品免费免费| 一本天堂ⅴ无码亚洲道久久| 亚洲综合精品香蕉久久网97| 国产亚洲av片在线观看18女人| 97在线免费观看视频| 国产精品亚洲а∨无码播放不卡| 亚洲日本一区二区三区在线不卡| 色www永久免费| 日本视频免费观看| 激情婷婷成人亚洲综合| 亚洲免费观看网站| 亚洲神级电影国语版| 国产精品免费大片一区二区| 毛片亚洲AV无码精品国产午夜| 久久亚洲国产午夜精品理论片| 4虎永免费最新永久免费地址| 亚洲欧美日韩中文二区| 亚洲一区免费视频| 亚洲国产精品综合久久2007| 亚洲欧洲自拍拍偷综合| 亚洲情a成黄在线观看动漫尤物| 精品久久洲久久久久护士免费| 国产精品免费观看视频| 国产裸体美女永久免费无遮挡| 亚洲精品国产福利片| 久久久亚洲精品无码| 日本久久久久亚洲中字幕| 亚洲第一中文字幕| 亚洲精品在线免费观看视频| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲视频在线观看一区|