《Maven實戰》是國內第一本公開出版的Maven專著。它內容新穎,基于最新發布的Maven3.0,不僅詳盡講解了Maven3.0的所有新功能和新特性,而且還將這些新功能和新特性與Maven2.x版本進行了對比,以便于正在使用Maven 2.x版本的用戶能更好地理解。本書它內容全面,以從專家的角度闡釋Maven的價值開篇,全面介紹了Maven的安裝、配置和基本使用方法,以便于初學者參考;詳細講解了坐標和依賴、Maven倉庫、生命周期和插件、聚合與繼承等Maven的核心概念,建議所有讀者仔細閱讀;系統性地闡述了使用Nexus建立私服、使用Maven進行測試、使用Hudson進行持續集成、使用Maven構建Web應用、Maven的版本管理、Maven的靈活構建、生成項目站點和Maven的m2eclipse插件等實用性較強的高級知識,讀者可有選擇性的閱讀;擴展性地講解了如何Maven和Archetype插件,這部分內容對需要編寫插件擴展Maven或需要編寫Archetype維護自己的項目骨架以更便于團隊開發的讀者來說尤為有幫助。它實戰性強,不僅絕大部分知識點都有相應的案例,而且本書還在第4章設計了一個背景案例,后面的很多章節都是圍繞這個案例展開的,可操作性極強。 本書適合所有Java程序員閱讀,無論你是從未使用過Maven,亦或是已經使用Maven很長一段時間了,相信你都能從本書中獲得有價值的參考。本書也適合所有項目經理閱讀,它能幫助你更規范、更高效地管理Java項目。
相信maven1大家都已經很熟悉了,具體maven能做什么,就不詳細說了。個人覺得maven在開源項目中用的還是比較多的,公司內部,就不太清楚了。我以前的公司用過一段時間,不過后來就沒有下文了。與maven1 相比,maven2可算是幾乎重寫了,不過從速度來說應該更快。
Maven是構建Java應用的優秀管理工具,是Apache軟件基金會的頂級項目。其具有開發目錄構建和管理,統一管理第三方依賴,編譯,測試,打包,發布等功能。最大的特點要數第三方依賴管理了,因為其它功能都能從Ant中找到蹤影。以往每個項目獨立管理依賴,使得每個項目打包后都是巨大無比的,而真正的程序文件卻沒有多少,Maven接管第三方依賴后,我們的應用就只有程序文件了,沒有了jar包輕巧很多,而統一的管理,使得我們可以隨意獲取jar資源。初學者使用Maven總是感覺很難上手,其中也有一部分人是被Maven下載資源那瘋狂的做法嚇退的,這就是Maven的精巧之處。從Apache官方網站下載的Maven工具僅僅2M大小,其中是不包含我們要使用的依賴的,那么就要從網絡中獲取這些依賴,就是那個瘋狂下載的過程。下面我們從頭開始構建Maven環境,直到運行Jetty容器執行Web應用,這一切都很簡單。
什么是pom????pom作為項目對象模型。通過xml表示maven項目,使用pom.xml來實現。主要描述了項目:包括配置文件;開發者需要遵循的規則,缺陷管理系統,組織和licenses,項目的url,項目的依賴性,以及其他所有的項目相關因素。
Maven是什么?Maven是針對Java開發項目、技術層面的項目管理工具,它提供了構建工具所提供功能的超集,除了構建功能之外,Maven還可以管理項目結構、管理依賴關系、生成報告、生成Web站點、有助于團隊成員之間的交流與協作。<br>Maven不是MS-Project或Primavera-P3那樣面向事務的項目管理工具。Maven是針對Java開發項目、技術層面的。<br>Maven不僅僅是一個像Ant那樣的構建工具,也不僅僅是像Ivy那樣的依賴管理工具。Maven提供構建與依賴管理功能的超集。<br>一個更正式的ApacheMaven的定義:Maven是一個項目管理工具,它包含了一個項目對象模型(ProjectObjectModel),一組標準集合,一個項目生命周期(ProjectLifecycle),一個依賴管理系統(DependencyManagementSystem),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
本文只是簡單的對maven的操作步驟做一個指南性的說明,實際應用還有很多東西需要實踐。
Maven2的最大特點是對第三方依賴庫進行統一管理,只要使用了Maven2就可以讓所有項目都是用統一管理的共享依賴庫,每個項目不再需要自己包含jar包,原來每個項目至少都要幾十M大小,現在省去了jar包,單個項目只需要幾百k。非常適合網上開源項目的使用。Maven2其實只是一個構建工具,最主要的用途是通過幾個簡單的命令實現項目的編譯,測試,打包,發布,還可以生成項目對應的站點以及報表。在更深的層次上,只要清楚如何善用插件,就可以為自己的項目生成各種分析報表。
與maven1 相比,maven2可算是幾乎重寫了,不過從速度來說應該更快。 主要的幾個新特性包括:<br> 1. 更快、更簡單速度方面可以比上ant了<br> 2.更少的配置文件:現在的配置文件只剩下了settings.xml和pom.xml了。<br> 3.Plugin語言更換:語言開始支持java,BeanShell和ant<br> 4.提供了預定義的模版:這點是最有幫助的,用戶可以自己定義自己的項目模版了,就像用appfuse一樣生成項目結構<br> 5.生命周期的引入:在Maven2中有了明確的生命周期概念,而且都提供與之對應的命令,使得項目構建更加清晰明了。<br> 6.新增Dependency Scope:這點也比較重要,有些用于test范圍的包,可以不用加入依賴了<br> 7.傳遞依賴,簡化依賴管理:這是最為方便的,可以省了很多配置。如a 依賴b,b依賴c 默認 a也會依賴 c。但是也會帶來隱患,如版本沖突。不過maven也已經考慮到了,可以使用exclusions來排除相應的重復依賴。