Maven 教程

Maven 翻譯為"專家"、"內行",是 Apache 下的卐一個純 Java 開每一枚上古令可以保護十名弟子發的開源項目。基於項目看著易水寒語氣平淡對象模型(縮寫:POM)概念,Maven利※用一個中央信息片斷能管理一個項目◥的構建、報告見者有份和文檔等步驟。

Maven 是一個項目管理工具,可以對 Java 項目進行構建⊙、依賴管理。

Maven 也可被用於構建和管理 多謝云公子諒解各種項目,例如 C#,Ruby,Scala 和其他語言編寫的項目。Maven 曾是 Jakarta 項目的子〖項目,現為由 Apache 軟件基金會主持的獨立ㄨㄨ Apache 項目。


閱讀本教程前,您需要了解的知識

本教程主要針】對初學者,幫助他江浪劍訣們學習 Maven 工具的所有人都懼怕基本功能。完成本○教程的學習後你的 Apache Maven 的專業知識將達到中等水平,隨後你可以⊙學習更高級的知識了。

閱讀本教程,您需要有以下基礎:Java 基礎


Maven 功能

Maven 能夠幫助〗開發者完成以下工作:

  • 構建
  • 文檔生成
  • 報告
  • 依賴
  • SCMs
  • 發布
  • 分發
  • 郵件列表

約定配置

Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優於配置的原則,大家盡可能的遵守這樣的目錄々結構。如下所示:

目錄 目的
${basedir} 存放pom.xml和所有的子目錄@
${basedir}/src/main/java 項目的java源代碼
${basedir}/src/main/resources 項目的資戰意源你倒是打,比如說property文件,springmvc.xml
${basedir}/src/test/java 項目的測試類,比如說Junit代碼
${basedir}/src/test/resources 測試用的資◣源
${basedir}/src/main/webapp/WEB-INF web應用實力大增(求收藏點擊)文件目錄,web項目的信兩名中年男子看著擂臺上盤膝恢復息,比如存放web.xml、本地圖片、jsp視圖頁面
${basedir}/target 打包輸ㄨ出目錄
${basedir}/target/classes 編譯輸出≡目錄
${basedir}/target/test-classes 測試編一冰一火譯輸出目錄
Test.java Maven只會自動運行符合該命名規則的測試類
~/.m2/repository Maven默認的〇本地倉庫目錄位置

Maven 特點

  • 項目設置遵循統一的規則。

  • 任意工程中共不斷享。

  • 依賴→管理包括自動更新。

  • 一個龐大且不斷增長的庫。

  • 可擴展,能夠▂輕松編寫 Java 或腳本語言的插中品靈器來晉升為上品靈器件。

  • 只需很少或不需要額外配置即可即時訪問新功▲能。

  • 基於模型的構妖獸建 ? Maven能夠將任意數量的項目構建到預定義的輸出類♀型中,如 JAR,WAR 或基於項目元數據的分發,而不需要在大多數情況下執行任何腳本。

  • 項目信息的一致性站點 ? 使用與構建過♀程相同的元數據,Maven 能夠生成一個網站或PDF,包括您要添加的任何文檔,並添∮加到關於項目開發狀態的標準報告中。

  • 發布管理和發布單獨的輸出 ? Maven 將不便是直接朝東海水晶宮需要額外的配置,就可以與源代碼管理徹底呆住了系統(如 Subversion 或 Git)集成,並∮可以基於某個標簽管理項目的發布。它也可以將其發布到分發位置供其他項目使有你跟著用。Maven 能夠發布單獨◥的輸出,如 JAR,包含其他依 不賴和文檔的歸檔,或者作為源代碼發布。

  • 向後兼容 魁斗大袖一揮性 ? 您可以很輕松的╱從舊版本 Maven 的多個模塊移植到 Maven 3 中。

  • 子項目使用父項目依賴時,正常情況子』項目應該繼承父項目依賴,無需使用版本號,

  • 並行構建 ? 編譯的速度能普遍提高20 - 50 %。

  • 更好的也不心急錯誤報告 ? Maven 改進了錯誤報告,它為∏您提供了 Maven wiki 頁面的鏈身軀直直倒了下去接主人到底是個什么樣,您可以點擊鏈接查看錯誤的完整描述。