天天看點

Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念

文章目錄

  • 24.1 Maven_概述
    • 24.1.1 什麼是 Maven
    • 24.1.2 Maven 能解決什麼問題
  • 24.2 Maven_依賴管理概念
    • 24.2.1 Maven優勢舉例
    • 24.2.2 Maven 的依賴管理
  • 24.3 Maven_一鍵建構的概念

24.1 Maven_概述

24.1.1 什麼是 Maven

  • Maven 的正确發音是[ˈmevən],而不是“馬瘟”以及其他什麼瘟。Maven 在美國是一個口語化的詞 語,代表專家、内行的意思。
  • 一個對 Maven 比較正式的定義是這麼說的:Maven 是一個項目管理工具,它包含了一個項目對象模 型 (POM:Project Object Model),一組标準集合,一個項目生命周期(Project Lifecycle),一個依賴管 理系統(Dependency Management System),和用來運作定義在生命周期階段(phase)中插件(plugin)目标 (goal)的邏輯。

24.1.2 Maven 能解決什麼問題

  • 可以用更通俗的方式來說明。我們知道,項目開發不僅僅是寫寫代碼而已,期間會伴随着各種 必不可少的事情要做,下面列舉幾個感受一下:
    • 1、我們需要引用各種 jar 包,尤其是比較大的工程,引用的 jar 包往往有幾十個乃至上百個, 每用 到一種 jar 包,都需要手動引入工程目錄,而且經常遇到各種讓人抓狂的 jar 包沖突,版本沖突。
    • 2、我們辛辛苦苦寫好了 Java 檔案,可是隻懂 0 和 1 的白癡電腦卻完全讀不懂,需要将它編譯成二進制位元組碼。好歹現在這項工作可以由各種內建開發工具幫我們完成,Eclipse、IDEA 等都可以将代碼即時編譯。當然,如果你嫌生命漫長,何不鋪張,也可以用記事本來敲代碼,然後用 javac 指令一 個個地去編譯,逗電腦玩。
    • 3、世界上沒有不存在 bug 的代碼,計算機喜歡 bug 就和人們總是喜歡美女帥哥一樣。為了追求美為 了減少bug,是以寫完了代碼,我們還要寫一些單元測試,然後一個個的運作來檢驗代碼品質。
    • 4、再優雅的代碼也是要出來賣的。我們後面還需要把代碼與各種配置檔案、資源整合到一起,定型 打包,如果是 web項目,還需要将之釋出到伺服器,供人蹂躏。

24.2 Maven_依賴管理概念

24.2.1 Maven優勢舉例

  • 前面我們通過 Web 階段項目,要能夠将項目運作起來,就必須将該項目所依賴的一些 jar 包添加到工程中,否則項目就不能運作。試想如果具有相同架構的項目有十個,那麼我們就需要将這一份 jar 包複制到十個不同的工程中。我們一起來看一個 CRM項目的工程大小。
  • 使用傳統 Web 項目建構的 CRM 項目如下:
    Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念
  • 原因主要是因為上面的 WEB 程式要運作,我們必須将項目運作所需的 Jar 包複制到工程目錄中,從 而導緻了工程很大。
  • 同樣的項目,如果我們使用 Maven 工程來建構,會發現總體上工程的大小會少很多。如下圖:
    Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念

24.2.2 Maven 的依賴管理

  • Maven 的一個核心特性就是依賴管理。當我們涉及到多子產品的項目(包含成百個子產品或者子項目),管理依賴就變成 一項困難的任務。Maven展示出了它對處理這種情形的高度控制。
  • 傳統的 WEB 項目中,我們必須将工程所依賴的 jar 包複制到工程中,導緻了工程的變得很大。那麼 maven工程是如何使得工程變得很少呢?
  • 分析如下:
    Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念
  • 通過分析發現:maven 工程中不直接将 jar 包導入到工程中,而是通過在 pom.xml 檔案中添加所需 jar包的坐标,這樣就很好的避免了 jar 直接引入進來,在需要用到 jar 包的時候,隻要查找 pom.xml 文 件,再通過 pom.xml

    檔案中的坐标,到一個專門用于”存放 jar 包的倉庫”(maven 倉庫)中根據坐标從 而找到這些 jar 包,再把這些 jar包拿去運作。

  • 圖示:
    Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念

24.3 Maven_一鍵建構的概念

  • 我們的項目,往往都要經曆編譯、測試、運作、打包、安裝 ,部署等一系列過程。 什麼是建構?
    • 指的是項目從編譯、測試、運作、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個 過程稱為建構。
  • 一鍵建構
    • 指的是整個建構過程,使用 maven 一個指令可以輕松完成整個工作。
  • Maven 規範化建構流程如下:
    Maven_基礎_hehe.employment.over.24.124.1 Maven_概述24.2 Maven_依賴管理概念24.3 Maven_一鍵建構的概念