讀古今文學網 > Maven實戰 > 1.3 Maven與極限編程 >

1.3 Maven與極限編程

極限編程(XP)是近些年在軟件行業紅得發紫的敏捷開發方法,它強調擁抱變化。該軟件開發方法的創始人Kent Beck提出了XP所追求的價值、實施原則和推薦實踐。下面看一下Maven是如何適應XP的。

首先看一下Maven如何幫助XP團隊實現一些核心價值:

·簡單。Maven暴露了一組一致、簡潔的操作接口,能幫助團隊成員從原來的高度自定義的、複雜的構建系統中解脫出來,使用Maven現有的成熟的、穩定的組件也能簡化構建系統的複雜度。

·交流與反饋。與版本控制系統結合後,所有人都能執行最新的構建並快速得到反饋。此外,自動生成的項目報告也能幫助成員瞭解項目的狀態,促進團隊的交流。

此外,Maven更能無縫地支持或者融入到一些主要的XP實踐中:

·測試驅動開發(TDD)。TDD強調測試先行,所有產品都應該由測試用例覆蓋。而測試是Maven生命週期的最重要的組成部分之一,並且Maven有現成的成熟插件支持業界流行的測試框架,如JUnit和TestNG。

·十分鐘構建。十分鐘構建強調我們能夠隨時快速地從源碼構建出最終的產品。這正是Maven所擅長的,只需要一些配置,之後用一條簡單的命令就能讓Maven幫你清理、編譯、測試、打包、部署,然後得到最終的產品。

·持續集成(CI)。CI強調項目以很短的週期(如15分鐘)集成最新的代碼。實際上,CI的前提是源碼管理系統和構建系統。目前業界流行的CI服務器如Hudson和CruiseControl都能很好地和Maven進行集成。也就是說,使用Maven後,持續集成會變得更加方便。

·富有信息的工作區。這條實踐強調開發者能夠快速方便地瞭解到項目的最新狀態。當然,Maven並不會幫你把測試覆蓋率報告貼到牆上,也不會在你的工作台上放個鴨子告訴你構建失敗了。不過使用Maven發佈的項目報告站點,並配置你需要的項目報告,如測試覆蓋率報告,都能幫你把信息推送到開發者眼前。

上述這些實踐並非只在XP中適用。事實上,除了其他敏捷開發方法如SCRUM之外,幾乎任何軟件開發方法都能借鑒這些實踐。也就是說,Maven幾乎能夠很好地支持任何軟件開發方法。

例如,在傳統的瀑布模型開發中,項目依次要經歷需求開發、分析、設計、編碼、測試和集成發佈階段。從設計和編碼階段開始,就可以使用Maven來建立項目的構建系統。在設計階段,也完全可以針對設計開發測試用例,然後再編寫代碼來滿足這些測試用例。然而,有了自動化構建系統,我們可以節省很多手動的測試時間。此外,盡早地使用構建系統集成團隊的代碼,對項目也是百利而無一害。最後,Maven還能幫助我們快速地發佈項目。