1. 程式人生 > >【單體應用 - 使用 Maven 構建應用】06 Maven POM

【單體應用 - 使用 Maven 構建應用】06 Maven POM

POM 代表專案物件模型。它是 Maven 中的基本單位,這是一個 XML 檔案。它始終儲存在該專案基本目錄中的 pom.xml 檔案。

POM 包含的專案是使用 Maven 來構建的,它用來包含各種配置資訊。

POM 也包含了目標和外掛。在執行任務或目標時,Maven 會使用當前目錄中的 POM。它讀取 POM 得到所需要的配置資訊,然後執行目標。部分的配置可以在 POM 使用如下:

  • project dependencies (專案依賴)
  • plugins (外掛)
  • goals (目標)
  • build profiles (生成配置檔案)
  • project version (專案版本)
  • developers (開發人員)
  • malling list (郵件列表)

建立一個 POM 之前,應該要先解決專案組(groupId),專案名稱(artifactId) 和版本,因為這些屬性在專案倉庫是唯一標識的。

POM 的例子

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.yuu</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
</project>

要注意的是,每個專案只有一個 POM 檔案

  • 所有的 POM 檔案必須有三個必填欄位:groupId,atrifactId,version
  • 在庫中的專案符號是:groupId:atrifactId:version
  • pom.xml 的根元素是 project,它有三個主要的節點。
節點 描述
groupId 這個是專案組的編號,這在組織或專案中通常是獨一無二的。例如,一家銀行集團 com.company.bank 擁有所有銀行相關專案。
artifacteId 這是專案的 ID。這通常是專案的名稱。例如,consumer-banking。除了 groupId 之外,artifactId 還定義了 artifact 在儲存庫中的位置。
version 這是專案的版本。與 groupId 一起使用,artifact 在儲存庫中用於將版本彼此分離。例如:com.company.bank:consumer-banking:1.0com.company.bank:consumer-banking:1.1