本篇知識來源于大佬博客以及菜鳥教程,
1.簡介
Maven專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和檔案的專案管理工具軟體,(它是一個強大的Java專案構建工具,基于POM(專案物件模型)檔案,可用于專案構建、依賴模塊管理和Javadoc生成等,)
2.構建工具
構建工具是軟體構建程序自動化的一種工具,一個軟體專案的構建通常包含以下幾部分:
- 生成源代碼(如果專案使用了自動生成部分源代碼)
- 從源代碼生成檔案(如javadoc)
- 編譯源代碼
- 將編譯好的代碼打包到ZIP包或JAR包中
- 把打包好的檔案部署到服務器或存盤庫
某些軟體專案可能還包含其他特殊構建任務,這些任務都可以添加到maven的構建程序中自動化執行,
構建程序自動化的好處是,避免出錯,效率更高,人工執行構建程序比較慢且容易出錯,
3.作業原理
3.1 Maven 讀取 pom.xml
maven根據pom.xml檔案中的配置來執行命令,
3.2 下載依賴jar包到本地庫(Repository)
pom.xml檔案中包含了依賴項的配置,依賴項是專案使用的第三方庫,即外部的jar檔案,如果本地庫沒有,那么Maven將從中央庫下載依賴項,并存放在本地庫中,
3.3 執行構建程序/階段/目標
專案的構建通常包含數個相互獨立的任務,可以獨立執行,如生成檔案,構建jar包等,單個任務的執行程序被稱為一個構建生命周期,構建生命周期由一系列的構建階段組成,每個階段包含一系列的構建目標,
3.4 執行插件
插件是構建目標的集合,也稱為MOJO (Maven Old Java Object),
3.5 構建profile
可以構建專案的不同版本,
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 存放測驗框架或其他工具的組態檔
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262360.html
標籤:Java
下一篇:PHP中類的自動加載
