POM 是指 Project Object Model。POM 是一個 xml,在 Maven 里為pom.xml。是 Maven 工作的基礎,在執行 task 或者 goal 時,Maven 會去項目根目錄下讀取 pom.xml 獲得需要的配置信息。
POM 文件中包含了項目的信息和 maven build 項目所需的配置信息,通常有項目信息(如版本、成員)、項目的依賴、插件和 goal、build 選項等。
POM 是可以繼承的,通常對于一個大型的項目或是多個 module 的情況,子模塊的 POM 需要指定父模塊的 POM。
可以參照 maven 官網上的文檔
project:POM 文件的頂級元素; 任何你想 build 的事物,Maven 都會把它們當作是一個Project;這些 Project 被定義為 POM(Project Object Model);一個 Project 可以依賴其他的 project,一個 project 也可以有多個子 project 組成
modelVersion:所使用的 object model 版本,為了確保穩定的使用,這個元素是強制性的。除非 maven開發者升級模板,否則不需要修改
groupId:是項目創建團體或項目的唯一標志符,通常是域名倒寫如:com.bjpowernode 或者 com.bjpowernode.p2p
artifactId:是項目 artifact 唯一的基地址名,通常指的是項目名或者模塊名如:p2p 或者 dataservice
version:artifact 的版本,通常能看見為類似 0.0.1-SNAPSHOT,其中 SNAPSHOT 表示項目開發中,為開發版本
packaging:artifact 打包的方式,如 jar、war、ear 等等。默認為 jar。這個不僅表示項目最終產生何種后綴的文件,也表示 build 過程使用什么樣的 lifecycle。
name:表示項目的展現名,在 maven 生成的文檔中使用
url:表示項目的地址,在 maven 生成的文檔中使用,通常不用
description:表示項目的描述,在 maven 生成的文檔中使用
dependencies:表示依賴,在子節點 dependencies 中添加具體依賴的 groupId、artifactId 和 version,Maven在搭建工程時主要是編寫依賴。編寫依賴就是從官網上復制
build:表示 build 配置
parent:表示父 POM