Maven 學習筆記(一)

什麼是 maven?

  對於已經使用過 maven 的用戶來講 maven 就是一個架構工具,使用它能夠將代碼構建成一個可發佈的工具.固然也有人會說maven是一個項目管理的工具。固然各有各的說法,那麼一個更正式的 Apache Maven 的定義: Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯。架構

如何理解一個項目的概念模型?

  Maven 維護了一個項目的模型,意味着不只要將其源碼編譯成字節碼文件,還須要包含軟件開發的描述信心,爲項目指定一個惟一的座標。主要有如下特色:maven

  • 依賴管理:一個項目包含組標識符構件標識符版本的惟一的座標定義的。所以在項目之間可使用這些聲明來添加依賴。
  • 遠程倉庫:和項目的依賴有關係,咱們可使用定義在項目對象模型(POM)中的座標來建立 Maven 構件的倉庫。
  • 全局性構建邏輯重用:在項目模型對象中咱們能夠引入不少的插件使其一塊兒工做。
  • 工具的繼承:對於不少的IDE都支持經過 maven 建立項目。

Maven VS Ant?

  Ant: 工具

    • Ant 約定一個項目的目錄結構必須是什麼樣子的,可是你必須明確的告訴 Ant 哪裏去找源代碼,哪裏放置輸出。
    • Ant 是程序化的,你必須明確的告訴 Ant 作什麼,何時作。
    • Ant 沒有生命週期,你必須定義目標和目標之間的依賴。

  Mavne: 測試

    • Maven 是有必定的約定的,基於maven的項目,源碼和測試代碼是在規定的文件中的。
    • Maven 是聲明式的,你通常只須要建立一個pom文件而後將源碼放在指定的目錄。maven就會爲你作你須要作的事情。
    • Mavne 是有生命週期的,當你運行一個命令的時候,這條命令就會告訴maven要去作哪些事情知道這個命令執行完畢。
相關文章
相關標籤/搜索