Maven權威指南

2010/04 /29更新 :我已經在個人網站提供了PDF下載 http://www.juvenxu.com/mvn-def-guide/

 

《Maven權威指南》介紹

關於Maven
----------------
Maven這個單詞來自於意第緒語,意味知識的積累,最早在Jakata Turbine項目中它開始被用來視圖簡化構建過程。當時有很多項目,它們的Ant build文件僅有細微的差別,而JAR文件都由CVS來維護。於是Maven創始者開始了Maven這個項目,該項目的清晰定義包括,一種很方便的發佈項目信息的方式,以及一種在多個項目中共享JAR的方式。
Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯。 當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
Maven的官方站點是:http://maven.apache.org/

Maven和Ant
----------------
Ant 沒有正式的約定如一個一般項目的目錄結構,你必須明確的告訴 Ant 哪裏去找源代碼,哪裏放置輸出。隨着時間的推移,非正式的約定出現了,但是它們還沒有在產品中模式化。
Ant 是程序化的,你必須明確的告訴 Ant 做什麼,什麼時候做。你必須告訴它去編譯,然後複製,然後壓縮。
Ant 沒有生命週期,你必須定義目標和目標之間的依賴。你必須手工爲每個目標附上一個任務序列。
Maven 擁有約定,因爲你遵循了約定,它已經知道你的源代碼在哪裏。它把字節碼放到 target/classes ,然後在 target 生成一個 JAR 文件。
Maven 是聲明式的。你需要做的只是創建一個 pom.xml 文件然後將源代碼放到默認的目錄。Maven 會幫你處理其它的事情。
Maven 有一個生命週期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命週期。遍歷生命週期旅途中的一個影響就是,Maven 運行了許多默認的插件目標,這些目標完成了像編譯和創建一個 JAR 文件這樣的工作。
此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。這些都是Ant的弱項。
當然,Ant的強大在於它的靈活性,但是,隨着項目規模的增大,使用Maven是更明智的選擇。

關於本書
----------------
本書是關於Maven最權威最全面的材料,它清晰瞭解釋了Maven這個工具如何給你的軟件開發項目帶來秩序。作者都擁有豐富的經驗,其中包括Maven的創始人Jason Van Zyl。
由於Maven在不斷髮展,本書也只是一個開始,你應該把它看成是第1版。本書的主要目的還是給Maven開發者提供支持。
本書一開始介紹了Maven是什麼,以及在各個環境下安裝運行Maven。之後的內容分爲兩個部分:第一部分爲Maven實戰,沿用了Maven:A Developer's Notebook(該書覆蓋的是Maven1的內容,目前絕大多數用戶都在使用Maven2)的風格,通過一個個生動實際的例子,循序漸進的闡釋了Maven的用法和核心概念,這些例子從最簡單的命令行程序,到Web應用,到多模塊項目,直至多模塊企業級項目。第二部分爲Maven參考,當你漸漸熟悉Maven,並且遇到問題需要解決的時候,這些參考就是最權威和詳細的材料了,通過它們,你能瞭解Maven的高級特性,更深刻的理解Maven系統如何工作。參考覆蓋的內容包括項目對象模型,構建生命週期,Profile,站點生成,編寫插件等等。值得一提的是,該部分還詳細介紹了m2eclipse和Nexus,m2eclipse是強大的在Eclipse中集成Maven的插件,Nexus是一個功能豐富的倉庫管理器,能讓你更方便的管理項目構件。
本書提供英文版在線的瀏覽及PDF下載: http://www.sonatype.com/book 。在這裏你下載到樣例源代碼,也可以提出你的意見和建議。

作者簡介
----------------
本書是由Sonatype的成員編寫的,作者有:Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.)
Jason Van Zyl
Sonatype的創始人和CTO,Sonatype是Java開發基礎設置的領導者,它的客戶包括Intuit,eBay,Qualcomm和eTrade。Jason擁有多於10年的開源及私人企業軟件開發經驗。在Sonatype之前,Jason是Periapt, Inc.的創始人,這是一個爲財富500強公司如豐田,美國銀行,和可口可樂提供軟件基礎設置開發服務的公司。作爲一個開源熱衷者,Jason是Apache Maven項目的創始人之一,以及Plexus Ioc框架的創始人,Apache Velocity項目的創始人。Jason目前主持着Apache Maven項目管理委員會。它已經參與Apache軟件基金會達7年之久,幫助建立了Codehaus,一個備受尊重的開源社區項目孵化設置。他還是很多主流軟件會議的常見發言人,如JavaOne,EclipseCon,EmergingTech,和ApacheCon。
Tim O'Brien
專業的作家,程序員,歌手,居住並工作於芝加哥區域。最早在一臺TRS-80上開始瞭解編程,之後去弗吉尼亞大學學習電子工程(之後不久就忘光了)。Tim積極參與開源項目,活動於Jakatra Commons。在此之前他著有Harnessing Hibernate, Maven: A Developer's Notebook 以及 Jakarta Commons Cookbook 。

翻譯介紹
----------------
本書從2008年07月起開始陸續翻譯成中文版,頻率爲大約每月兩章,中文版的在線瀏覽地址爲:http://www.sonatype.com/book/reference_zh/public-book.html。此外,譯者Juven Xu同時維護了一個Maven中文博客,更新翻譯進程,提供Maven相關新聞,以及編寫Maven相關技術文章:http://juvenshun.iteye.com/。
Juven Xu
南京大學軟件學院畢業,興趣方向爲Java,敏捷開發。有較豐富的使用Maven管理項目的經驗。
博客中一些讀者的評價:
- 繼續關注樓主的翻譯,正是看到了樓主的文章,才決定試用maven。 —— Caixiaopig
- 對juven極力推廣maven表示敬佩。工作中一直使用maven,深刻的體會它的便利。而且maven的插件(plugin)的開發相當簡單,可以解決項目中一些特定而重複性問題,don't repeat yourself ! —— nasvel
- 前五章已經看完,作者的翻譯水平是一流的,期待其他章節中。。。。! —— killvin
- 你用過Maven嗎?凡是要拍Maven板磚,麻煩先認真使用一下Maven,至少說出個1,2,3來,從Maven2.0開始,我就用Maven替代了Ant的大部分工作,Ant只做一下靈活的任務~~另外、這個東西就是一個項目管理工具。。。複雜在那裏。。。 —— phoenixup

本書目錄
----------------
前言

1. 介紹Apache Maven
2. 安裝和運行Maven
I. Maven實戰
  3. 一個簡單的Maven項目
  4. 定製一個Maven項目
  5. 一個簡單的Web應用
  6. 一個多模塊項目
  7. 多模塊企業級項目
  8. 優化和重構POM
II. Maven參考
  9. 項目對象模型
  10. 構建生命週期
  11. 構建Profile
  12. Maven裝配器
  13. 屬性和資源過濾
  14. Maven和Eclipse: m2eclipse
  15. 站點生成
  16. 倉庫管理器
  17. 編寫插件
  18. 使用其它語言編寫插件
附錄A. Settings細節
服務B. Sun規格說明非官方實現

 

英文版在線閱讀:http://books.sonatype.com/maven-book/reference/public-book.html

中文版在線閱讀:http://books.sonatype.com/maven-book/reference_zh/public-book.html

 

翻譯進度:http://groups.google.com/group/maven-zh/web/maven

翻譯勘誤:http://groups.google.com/group/maven-zh/web/maven-2

 

附件是目前已完成章節的PDF。

發佈了1 篇原創文章 · 獲贊 1 · 訪問量 4567
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章