Maven--概述

韓家小志發表於2020-12-13

0、前言

  • 擅長管理大型專案
  • 自動管理你需要的jar包
  • 自動進行下載我們需要的jar包。

1、maven的概念

  • Maven是專案進行模型抽象,充分運用物件導向的思想,Maven可以通過一小段描述資訊來管理專案的構建,報告和文件的軟體專案管理工具。Maven 除了以程式構建能力為特色之外,還提供高階專案管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建指令碼就可以構建簡單的專案。
  • 說白了: Maven是由Apache開發的一個工具用來管理java專案, 依賴管理(jar包的管理),專案構建。

2、Maven的作用

  • 依賴管理: maven對專案的第三方構件(jar包)進行統一管理。向工程中加入jar包不要手工從其它地方拷貝,通過maven定義jar包的座標,自動從maven倉庫中去下載到工程中。
  • 專案構建: maven提供一套對專案生命週期管理的標準,開發人員、和測試人員統一使用maven進行專案構建。專案生命週期管理:編譯、測試、打包、部署、執行。
  • maven對工程分模組構建,提高開發效率。

3、Maven的概念模型

  • 專案物件模型(Project Object Model),POM物件模型,每個maven剛工程中都有一個pom.xml檔案,定義工程所依賴的jar包、本工程的座標、打包的方式。
  • 依賴管理系統(基礎核心),maven通過座標對專案工程所依賴的jar包統一規範管理。
  • maven定義一套專案生命週期清理、初始化、編譯、測測試、報告、打包、部署、站點生成。
  • 一組標準集合,maven工程有自己標準的工程目錄結構、定義座標有標準。
  • maven管理專案生命週期過程都是基於外掛完成的,例如:開發中使用的tomcat外掛。

4、Maven的倉庫

4.1 Maven的倉庫

倉庫名稱作用
本地倉庫相當於快取,工程第一次會從遠端倉庫(網際網路)去下載jar 包,將jar包存在本地倉庫(在程式設計師的電腦上)。第二次不需要從遠端倉庫去下載。先從本地倉庫找,如果找不到才會去遠端倉庫找。
中央倉庫就是遠端倉庫,倉庫中jar由專業團隊(maven團隊)統一維護。中央倉庫的地址:[https://repo1.maven.org/maven2/]
遠端倉庫(私服)私服是一種特殊的遠端倉庫,它是架設在區域網內的倉庫服務,私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。當Maven須要下載構件的時候。它從私服請求,假設私服上不存在該構件,則從外部的遠端倉庫下載,快取在私服上之後,再為Maven的下載請求提供服務。

在這裡插入圖片描述

4.2 倉庫中存放的內容

  • Maven自身執行所需要的外掛
  • 第三方框架(spring/mybatis/springmvc)和工具類的jar包
  • 我們自己開發的maven專案安裝後的jar包

5、maven的座標

  • Maven的一個核心的作用就是管理專案的依賴,引入我們所需的各種jar包等。在Maven中,不論什麼一個依賴、外掛或者專案構建的輸出, 都能夠稱之為構件
  • 為了能自動化的解析任何一個Java構件. Maven必須將這些Jar包或者其他資源進行唯一標識,這是管理專案的依賴的基礎,也就是我們要說的座標
  • 包括我們自己開發的專案,也是要通過座標進行唯一標識的,這樣才能才其它專案中進行依賴引用。座標的定義元素如下:
    • groupId:專案組織唯一的識別符號實際對應JAVA的包的結構
      • (一般寫公司的組織名稱 例如:com.han,com.alibaba)
    • artifactId: 專案的名稱
    • version:定義專案的當前版本
  • 例如:要引入druid的jar包,只需要在pom.xml配置檔案中配置引入druid的座標即可:
<!--druid連線池-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>  
  <version>1.1.10</version>  
</dependency>