讀古今文學網 > Maven實戰 > 前言 >

前言

為什麼寫這本書

2007年的時候,我加入了一個新成立的開發團隊,我們一起做一個新的項目。經驗較豐富的同事習慣性地開始編寫Ant腳本,也有人希望能嘗試一下Maven。當時我比較年輕,且富有激情,因此大家決定讓我對Maven做些研究和實踐。於是我慢慢開始學習並推廣Maven,這期間有人支持,也有人牴觸,而我則盡力地為大家排除困難,並做一些內部交流,漸漸地,牴觸的人越來越少,我的工作也得到了大家的認可。

為什麼一開始有人會牴觸這一優秀的技術呢?後來我開始反思這一經歷,我認為Maven陡峭的學習曲線和匱乏的文檔是當時最主要的問題。為了能改善這個問題,我開始在博客中撰寫各類關於Maven的中文博客,翻譯了O』Reilly出版的《Maven權威指南》一書,並建立了國內的Maven中文社區,不定期地回答各類Maven相關問題,這在一定程度上推動了Maven這一優秀的技術在國內的傳播。

後來我加入了Maven之父Jason Van Zyl創建的Sonatype,參與Nexus的開發並負責維護Maven中央倉庫,這些工作使我對開源和Maven有了更深的認識,也給了我從頭寫一本關於Maven的書的信心。我希望它能夠更貼近國內的技術人員的需求,能夠出現在書店的某個角落裡,給那些有心發現它的讀者帶來一絲欣喜。

該書寫作後期適逢Maven 3的發佈,這距離我剛接觸Maven時已經過去3年有餘,感歎時光的流逝!Maven在2007年至2010年取得了飛速的發展,現在幾乎已經成為了所有Java開源項目的標配,Struts、Hibernate、Ehcache等知名的開源項目都使用Maven進行管理。據瞭解,國內也有越來越多的知名的軟件公司開始使用Maven管理他們的項目,例如阿里巴巴和淘寶。

本書面向的讀者

首先,本書適合所有Java程序員閱讀。由於自動化構建、依賴管理等問題並不只存在於Java世界,因此非Java程序員也能夠從該書中獲益。無論你是從未接觸過Maven、還是已經用了Maven很長時間,亦或者想要擴展Maven,都能從本書獲得有價值的參考建議。

其次,本書也適合項目經理閱讀,它能幫助你更規範、更高效地管理Java項目。

本書的主要內容

第1章對Maven做了簡要介紹,通過一些程序員熟悉的例子介紹了Maven是什麼,為什麼需要Maven。建議所有讀者都閱讀以獲得一個大局的印象。

第2~3章是對Maven的一個入門介紹,這些內容對初學者很有幫助,如果你已經比較熟悉Maven,可以跳過。

第4章介紹了本書使用的背景案例,後面的很多章節都會基於該案例展開,因此建議讀者至少簡單瀏覽一遍。

第5~8章深入闡述了Maven的核心概念,包括坐標、依賴、倉庫、生命週期、插件、繼承和多模塊聚合,等等,每個知識點都有實際的案例相佐,建議讀者仔細閱讀。

第9章介紹使用Nexus建立私服,如果你要在實際工作中使用Maven,這是必不可少的。

第10~16章介紹了一些相對高級且離散的知識點,包括測試、持續集成與Hudson、Web項目與自動化部署、自動化版本管理、智能適應環境差異的靈活構建、站點生成,以及Maven的Eclipse插件m2eclipse,等等。讀者可以根據自己實際需要和興趣選擇性地閱讀。

第17~18章介紹了如何編寫Archeype和Maven插件。一般的Maven用戶在實際工作中往往不需要接觸這些知識,如果你需要編寫插件擴展Maven,或者需要編寫Archetype維護自己的項目骨架以方便團隊開發,那麼可以仔細閱讀這兩章的內容。

咖啡與工具

本書相當一部分的內容是在蘇州十全街邊的Solo咖啡館完成的,老闆Yin親手烘焙咖啡豆、並能做出據說是蘇州最好的咖啡,這小橋流水畔的溫馨小屋能夠幫我消除緊張和焦慮,和Yin有一句沒一句的聊天也是相當的輕鬆。Yin還教會了我如何自己研磨咖啡豆、手沖滴率咖啡,讓我能夠每天在家裡也能享受香氣四溢的新鮮咖啡。

本書的書稿是使用Git和Unfuddle(http://unfuddle.com/)進行管理的,書中的大量截圖是通過Jing(http://www.techsmith.com/jing/)製作的。

JuvenXu

2010年10月於蘇州Solo咖啡