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

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

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

    敏捷、分布式、ALM過程自動化、企業應用架構
    posts - 14, comments - 0, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Maven項目管理理解與使用

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

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

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

     

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

    l         簡化構建過程

    l         提供統一的構建系統

    l         提供項目質量信息

    l         提供對于開發最佳實踐的指導

    l         允許對于新特性的透明整合

     

    對于Maven影響最為深刻的就是它的構建系統,幾乎貫穿了整個實施階段。作為對比我們參考一下RUPConstruction階段,以及Scrum的單個Sprint過程。

     

    RUPConstruction階段的目標:

    這個階段的目標是澄清需求并基于架構基線完成開發。

    l          通過優化資源來縮減開支,并避免無意義的爭執與返工。

    l          實用性與質量兼具。

    l          盡快發布可用版本。

    l          完成對所有功能的分析、設計、開發、測試。

    l          采用增量迭代的模式完成開發并準備交付。

    l          檢查項目發布的所有資源是否已經準備完全。

    l          形成項目組之間的并行開發。

     

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

    l          簡單設計(Simple Design

    l          結對編程(Pair Programming

    l          測試驅動(Test-Driven Development

    l          小規模發布(Small Releases

    l          持續集成(Continuous Integration

    l          集體擁有代碼(Collective Code Ownership

    l          編碼標準(Coding Standard

     

    Maven對于上述目標中的質量(實用性與質量,以測試驅動)、可用(可用版本,小規模)、資源管理等均能發揮較大的作用。主要是其定義了一套完整優秀的構建生命周期機制,其基本階段如下:

    l         validate驗證項目正確性及依賴有效性

    l         compile編譯項目源碼

    l         test使用合適的單元測試框架對編譯后的源碼進行測試,測試代碼不會被打包或發布

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

    l         integration-test將打包后的代碼放置于環境中進行集成測試

    l         verify檢查打包的有效性并驗證質量標準

    l         install將包裝載入本地倉庫,以提供與其他項目的依賴

    l         deploy將包發布至遠程倉庫中

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

     

    在項目中實際使用的經驗,對于標簽的使用心得:

    1.<dependency> - 依賴標簽,最重要的標簽,也是Maven的基礎功能。

                  <dependency>

                         <groupId>junit</groupId>

                         <artifactId>junit</artifactId>

                         <version>4.8.1</version>

                         <scope>test</scope>

                  </dependency>

     

    2. <repository> - 資源倉庫,可以包含多個,常用的有MavenJboss等,如下是公司內建的Nexus資源庫。

    <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> - 解釋為情景模式可能較為合適。可以有多個,在何種場景下會使用哪些屬性、插件等。如下例子便是當缺失某個文件時激活。

    (感覺寫的不錯的一篇,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> - 構建過程。是進行整個項目管理的核心標簽。重點需要掌握的知識就是生命周期。

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

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

     

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

    下面的例子就是在集成測試中,只運行后綴為TestSuitex.java的測試類

     

                         <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>

     


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品亚洲一区二区三区| 亚洲午夜无码久久久久小说| 中文字幕在线免费看线人| 国产伦精品一区二区三区免费迷| 亚洲av中文无码乱人伦在线观看| 在线观看免费人成视频色| 亚洲日韩国产精品无码av| 国产成人精品免费视频网页大全| 亚洲综合精品一二三区在线| 中国人xxxxx69免费视频| 亚洲高清无在码在线电影不卡| 国产成人yy免费视频| 亚洲人成免费电影| 成人午夜18免费看| 看成年女人免费午夜视频| 精品亚洲视频在线观看| 两个人看www免费视频| 麻豆亚洲AV永久无码精品久久| 91精品免费在线观看| 亚洲色中文字幕在线播放| 免费大黄网站在线看| baoyu122.永久免费视频| 亚洲va中文字幕无码久久| 91手机看片国产永久免费| 亚洲精品第一国产综合亚AV| 亚洲国产精品一区二区九九| 三年片在线观看免费西瓜视频| 亚洲熟妇av一区二区三区下载| 无限动漫网在线观看免费| 精品在线观看免费| 亚洲av日韩av不卡在线观看| 国产精品久久久久久久久免费| 亚洲码和欧洲码一码二码三码| 亚洲国产精品视频| 在线a免费观看最新网站| 国产AV无码专区亚洲AV琪琪| 亚洲AV中文无码乱人伦下载| 国产成人免费爽爽爽视频| 一级毛片视频免费观看| 亚洲熟妇无码久久精品| 亚洲国产成人久久一区WWW|