pom[計算機術語]

pom[計算機術語]

Maven是以項目為中心的設計。POM(project object model)是Maven對一個單一項目的描述。沒有POM的話,Maven是毫無用處的——POM是Maven的核心。是POM實現的並驅動了這種以模型來描述的構建方式。

POM示例

下面的POM示例,是可能用於構建和測試一個項目的腳本。一個POM是一個XML文檔,看起來類似於如下的示例:

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany.app</groupId>

<artifactId>my-app</artifactId>

<packaging>jar</packaging>

<version>1.0-SNAPSHOT</version>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

此POM腳本允許編譯、測試以及生成基本的文檔。你可能會問單憑這區區15行代碼是如何做到的,實際上這是一個十分好且基本的問題。答案在於Maven對於其Super POM(譯者註:意即所有POM腳本的父腳本)的隱匿調用。

規則

Maven的POM文檔帶有全部的Maven所鼓勵的默認規則,這類似於Java語言的java.lang.Object對象。

在Java里,所有對象都是java.lang.Object的子對象,同樣的,在Maven中,所有POM也都是一個Super POM的子腳本。這個Super POM乍一看可能讓你覺得恐怖,要記住的最關鍵一點是,Super POM包含了重要信息,因此你不必在創建一個POM的時候重複這些信息。

包含元素

一個POM包含了關於你的項目的所有重要信息。之前提供的POM示例,非常簡單,但仍然顯示出了一個POM所包含的一些關鍵元素。

project:這是所有pom檔案中的最頂級元素,一級根元素。

modelVersion:此必需的元素說明了本POM所使用的模型版本。模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,以當Maven引入了新的特性或者其他模型變更的時候,確保穩定性。

groupId:本元素表示創建本項目的組織的唯一標識。groupId是一個項目的核心關鍵標識之一,它基於組織的完整屬性域名。

artifactId:表示本項目的主要項目的唯一基本名。一個典型的由Maven生成的項目名稱將會是如下的格式:<artifactId>-<version>.<extension>;,其他部分諸如源包也使用artifactId作為它們名稱的一部分。

packaging:表示本項目所使用的包類型(JAR,WAR,EAR等)。這不僅僅意味著將使用JAR,、WAR、EAR打包,也表明在作為構建流程一部分的,一個特定的生命周期。此生命周期是一個主題處理,會在本章的稍後提到。只要記住此選定的項目包扮演的是定製構建生命周期的角色。本元素的默認值是jar,因此在大多數情況下,你不需要去特別指定。

version:表示項目的版本,Maven對於你的版本管理大有幫助,你會經常看到一個版本的SNAPSHOT(快照),指示項目在開發中的不同狀態。

name:項目的顯示名稱,常用於Maven生成的文檔當中,並在構建過程中,為你的項目或其他的項目作為一種依賴使用。

url:項目的網站網址。

description:項目的介紹。

相關詞條

相關搜尋

熱門詞條

聯絡我們