maven(1)

本篇知識來源於大佬博客以及菜鳥教程css

1.簡介

Maven項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔項目管理工具軟件。(它是一個強大的Java項目構建工具,基於POM(項目對象模型)文件,可用於項目構建、依賴模塊管理和Javadoc生成等。)html

2.構建工具

構建工具是軟件構建過程自動化的一種工具。一個軟件項目的構建一般包含如下幾部分:前端

  • 生成源代碼(若是項目使用了自動生成部分源代碼)
  • 從源代碼生成文檔(如javadoc)
  • 編譯源代碼
  • 將編譯好的代碼打包到ZIP包或JAR包中
  • 把打包好的文件部署到服務器或存儲庫

某些軟件項目可能還包含其餘特殊構建任務,這些任務均可以添加到maven的構建過程當中自動化執行。java

構建過程自動化的好處是,避免出錯,效率更高,人工執行構建過程比較慢且容易出錯。web

3.工做原理

3.1 Maven 讀取 pom.xml

maven根據pom.xml文件中的配置來執行命令。apache

3.2 下載依賴jar包到本地庫(Repository)

pom.xml文件中包含了依賴項的配置,依賴項是項目使用的第三方庫,即外部的jar文件,若是本地庫沒有,那麼Maven將從中央庫下載依賴項,並存放在本地庫中。服務器

3.3 執行構建過程/階段/目標

項目的構建一般包含數個相互獨立的任務,能夠獨立執行,如生成文檔,構建jar包等。單個任務的執行過程被稱爲一個構建生命週期,構建生命週期由一系列的構建階段組成,每一個階段包含一系列的構建目標。app

3.4 執行插件

插件是構建目標的集合,也稱爲MOJO (Maven Old Java Object)。框架

3.5 構建profile

能夠構建項目的不一樣版本。webapp

4.POM

4.1 概念

POM( Project Object Model,項目對象模型 ) 是 Maven 工程的基本工做單元,是一個XML文件,包含了項目的基本信息,用於描述項目如何構建,聲明項目依賴,等等。

執行任務或目標時,Maven 會在當前目錄中查找 POM。它讀取 POM,獲取所需的配置信息,而後執行目標。

POM 中能夠指定如下配置:

  • 項目依賴
  • 插件
  • 執行目標
  • 項目構建 profile
  • 項目版本
  • 項目開發者列表
  • 相關郵件列表信息

4.2 標籤

節點 描述
project 工程的根標籤
modelVersion 指定模型版本,應爲4.0
groupld 這是工程組的標識。它在一個組織或者項目中一般是惟一的。
artifactld 這是工程的標識。它一般是工程的名稱。
version 這是工程的版本號。

4.3 pom繼承

父(Super)POM是 Maven 默認的 POM。全部的 POM 都繼承自一個父 POM(不管是否顯式定義了這個父 POM)。父 POM 包含了一些能夠被繼承的默認設置。

<parent>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <relativePath></relativePath>
    </parent>

可用上述結構顯式地繼承另外一個POM文件。

5.存儲庫

Maven Repository/存儲庫,顧名思義是一個存儲JAR文件的倉庫,Maven根據項目中pom.xml文件中提供的jar包依賴信息,從存儲庫中查找並獲取須要的jar包。

Maven Repository有3種類型:

  • Local Repository – 本地庫
  • Central Repository – 中央庫
  • Remote Repository – 遠程庫

Maven搜索依賴項時,會按照:本地庫、中央庫和遠程庫的順序進行。

本地庫能夠經過修改settings.xml(apache-maven-3.6.3\conf\)文件來更改maven本地存儲庫的位置。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
          <localRepository>D:\Java\maven-repository</localRepository>
  <!-- localRepository

localRepository 後方是咱們想要修改地本地庫存儲的位置。

6.項目結構

|--name

​	|--pom.xml   Project Object Model 項目對象模型,Maven 的核心配置文件,與構建過程相關的一切設置都在這個文件中進行配置。

​	|--src

​		|--main 		存放主程序

​			|--java		存放java源文件

​			|--resources   存放框架或其餘工具的配置文件

​			|--webapp	存放關於網頁的數據

​				|--index.jsp	默認訪問

​				|--static		

​					|--default	存放前端要用的框架,圖片,css,js等文件

​				|--WEB-INF

​					|--web.xml	配置文件

​					|--page	存放前端頁面,每一個板塊各爲一個文件夾

​		|--test	存放測試程序

​			|--java		存放測試java源文件

​			|--resources   存放測試框架或其餘工具的配置文件
相關文章
相關標籤/搜索