一文帶你完全搞懂 Maven

一文帶你完全搞懂 Mavenjava

在剛學maven時,我就把maven看成一個引入jar包的工具而已,之前是本身下載jar包,如今是隻用在pom文件中填寫相應的座標就能夠了。除此以外當咱們須要使用的jar包依賴於另外一個jar包時,maven會自動幫咱們引入適用的版本。這就避免了咱們本身下jar包,而後版本不匹配的問題。除此以外,我還模糊的知道一些maven的聚合和繼承,以後在接手項目的時候仍是吃了的大虧。因而打算從新學習一下maven。程序員

      maven是什麼web

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of informationmaven

Maven 的定位工具

多數博客或者視頻都將maven定義爲自動化構建工具。那什麼是自動化構建工具呢?咱們首先來解釋構建:學習

  • 一個BS項目最終運行的並非動態web工程自己,而是這個動態web工程「編譯的結果」
  • 將java源文件變成字節碼,交給JVM去執行
  • 編譯
  • 部署

構建各個過程的步驟:測試

  • 清理: 將之前編譯獲得的舊字節碼刪除掉
  • 編譯: 將java源代碼變成字節碼
  • 測試: 執行test文件夾中的測試程序
  • 報告: 顯示測試程序執行的結果
  • 打包: 動態Web工程打成war包,Java工程打成jar包
  • 安裝: Maven的特定概念---將打包獲得的文件複製到"倉庫"中指定的位置
  • 部署: 將動態Web工程生成的war包複製到Servlet容器中指定的目錄下,使其能夠運行
  • 自動化構建,其實上述步驟,在 elipse 和 IDEA 中也能夠完成,只不過沒那麼標準。既然 IDE 已經能夠完成這些工做了,那麼還要 maven 幹什麼呢?

平常開發中,如下幾個步驟是咱們常常走的:ui

  • 編譯
  • 打包
  • 部署
  • 測試orm

這幾個步驟是程式化的,沒有太大的變數或者說根本就沒有變數。程序員們很但願從這些重複的工做中脫身出來,將這些重複的工做交給工具去作。此時Maven的意義就體現出來了,它能夠自動的從構建過程當中的起點一直執行到終點。視頻

    maven 的核心概念
**

POM

POM: a project object model. 項目對象模型。對這個概念老實說,我並無很深的理解,或者說我並不理解項目對象模型的意思。

有資料說項目對象模型就是將 Java 工程的相關信息封裝爲對象便於操做和管理的模型。

這個解釋的稍微讓人那麼容易那麼一點。學習 Maven 就是學習 pom.xml 文件中的配置。

座標

座標這個概念我以爲和依賴結合起來解釋會更好,在沒有Maven以前,咱們引入jar包的方式就是先下載,
而後在複製在類文件路徑下,你的項目須要的jar包,在Maven看來就是你的項目依賴於某些jar包,pom.xml文件中填寫對應jar包的位置,
就能夠引入對應的 jar 包。使用以下三個向量在 Maven 的倉庫中惟一的肯定一個 Maven 工程

**

相關文章
相關標籤/搜索