maven 是什么?


  在了解maven的概念之前,我一直都在項目中使用maven,但是對於maven的了解,只能說連個皮毛都算不上,一直到項目中,自己機械化的deploy項目的時候,發現報錯,趕緊報告開發組長,這私服是不是掛了,怎么deploy不成功,然而,組長說給你科普一下maven吧,deploy是只需要deploy api項目就行,不需要deploy項目center,同事也趁機說小陳好好學習maven吧,此時我老臉一紅,做了一年的開發了,竟然對maven一無所知,那怎么行,那就從最基礎的開始吧。

  1.什么是maven

  Maven 是一個項目管理工具,它包含了一個項目對象模 型 (POM:Project Object Model),一組標准集合,一個項目生命周期(Project Lifecycle),一個依賴管 理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標 (goal)的邏輯。

  2.maven的作用

  1)依賴管理

  maven 工程中不直接將 jar 包導入到工程中,而是通過在 pom.xml 文件中添加所需 jar 包的坐標,這樣就很好的避免了 jar 直接引入進來,在需要用到 jar 包的時候,只要查找 pom.xml 文 件,再通過 pom.xml 文件中的坐標,到一個專門用於”存放 jar 包的倉庫”(maven 倉庫)中根據坐標從 而找到這些 jar 包,再把這些 jar 包拿去運行。

  2)一鍵構建

  什么是構建? 指的是項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個 過程稱為構建。

   一鍵構建 指的是整個構建過程,使用 maven 一個命令可以輕松完成整個工作。

  Maven 規范化構建流程如下:

     

 

  3.maven軟件

  1)maven軟件目錄

  

 

  bin:存放了 maven 的命令,比如我們前面用到的 mvn tomcat:run

  boot:存放了一些 maven 本身的引導程序,如類加載器等

  conf:存放了 maven 的一些配置文件,如 setting.xml 文件

  lib:存放了 maven 本身運行所需的一些 jar 包 

  2)maven安裝驗證

  通過 mvn -v命令檢查 maven 是否安裝成功,看到 maven 的版本為 3.5.2 及 java 版本為 1.8 即為安裝 成功。

  4.maven倉庫

  maven 的工作需要從倉庫下載一些 jar 包,如下圖所示,本地的項目 A、項目 B 等都會通過 maven 軟件從遠程倉庫(可以理解為互聯網上的倉庫)下載 jar 包並存在本地倉庫,本地倉庫 就是本地文 件夾,當第二次需要此 jar 包時則不再從遠程倉庫下載,因為本地倉庫已經存在了,可以將本地倉庫 理解為緩存,有了本地倉庫就不用每次從遠程倉庫下載了。

  

 

 

   (1)本地倉庫 :用來存儲從遠程倉庫或中央倉庫下載的插件和 jar 包,項目使用一些插件或 jar 包, 優先從本地倉庫查找

   (2)遠程倉庫:如果本地需要插件或者 jar 包,本地倉庫沒有,默認去遠程倉庫下載。 遠程倉庫可以在互聯網內也可以在局域網內。

   (3)中央倉庫 :在 maven 軟件中內置一個遠程倉庫地址 http://repo1.maven.org/maven2 ,它是中 央倉庫,服務於整個互聯網,它是由 Maven 團隊自己維護,里面存儲了非常全的 jar 包,它包 含了世界上大部分流行的開源項目構件。

    全局 setting 與用戶 setting maven 倉庫地址、私服等配置信息需要在 setting.xml 文件中配置,分為全局配置和用戶配置。 在 maven 安裝目錄下的有 conf/setting.xml 文件,此 setting.xml 文件用於 maven 的所有 project 項目,它作為 maven 的全局配置。 如需要個性配置則需要在用戶配置中設置,用戶配置的 setting.xml 文件默認的位置在:${user.dir} /.m2/settings.xml 目錄中,${user.dir} 指 windows 中的用戶目錄。 maven 會先找用戶配置,如果找到則以用戶配置文件為准,否則使用全局配置文件。

  5.maven工程的認識

  1)maven工程的目錄結構

  

 

 

   作為一個 maven 工程,它的 src 目錄和 pom.xml 是必備的。 進入 src 目錄后,我們發現它里面的目錄結構如下:

  

 

 

   src/main/java —— 存放項目的.java 文件

  src/main/resources —— 存放項目資源文件,如 spring, hibernate 配置文件

  src/test/java —— 存放所有單元測試.java 文件,如 JUnit 測試類

  src/test/resources —— 測試資源文件

  target —— 項目輸出位置,編譯后的 class 文件會輸出到此目錄

  pom.xml——maven 項目核心配置文件

 

   6.maven常用的命令

  1)compile

  compile 是 maven 工程的編譯命令,作用是將 src/main/java 下的文件編譯為 class 文件輸出到 target 目錄下。

  2) test

  test 是 maven 工程的測試命令 mvn test,會執行 src/test/java 下的單元測試類。

  3) clean

  clean 是 maven 工程的清理命令,執行 clean 會刪除 target 目錄及內容。

  4)package

  package 是 maven 工程的打包命令,對於 java 工程執行 package 打成 jar 包,對於 web 工程打成 war 包。

  5) install

  install 是 maven 工程的安裝命令,執行 install 將 maven 打成 jar 包或 war 包發布到本地倉庫。

  從運行結果中,可以看出: 當后面的命令執行時,前面的操作過程也都會自動執行,

  6)Maven 指令的生命周期

  maven 對項目構建過程分為三套相互獨立的生命周期,請注意這里說的是“三套”,而且“相互獨立”, 這三套生命周期分別是:

  Clean Lifecycle 在進行真正的構建之前進行一些清理工作。

  Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。

  Site Lifecycle 生成項目報告,站點,發布站點。

  好了,基礎就學到這里,下節進行更高級課程的maven學習

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM