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