Maven 之 POM(Project Object Model) 設定檔

在Maven中,最重要也是最基本的就是POM(Project Object Model)了。POM是一個XML的設定檔,它包含了Maven在建置專案時的所有資訊。

在執行Maven時,它會去檢查專案目錄下是某具有pom.xml檔案,如果沒有時,任何操作都會出現build error。



在一個pom.xml設定檔中,最少需要有以下五個元素:

  • project root:專案的根目錄
  • modelVersion:代表目前使用的POM版本,在maven 2.x中,一定要設定為4.0.0
  • groupId:代表目前專案所屬組織的ID。這個groupId的設定不一定要用.隔開,事實上也不一定要是你的package宣告,只是目前大家都這樣用,當你使用com.kevingo的id宣告,maven會產生com/kevingo這樣的目錄結構。詳細可參考:http://maven.apache.org/pom.html
  • artifactId:代表這個組織下的產品名稱,通常會設定為專案名稱
  • version:專案的版本
  • packaging:打包專案時種類,這個元素不一定要寫,沒有設定時,預設會將專案包成jar。而Maven目前支援的種類有:pom, jar, maven-plugin, ejb, war, ear, rar, par.

整個pom.xml會長的類似像這樣

<project>
    <modelversion>4.0.0</modelversion>
    <groupid>com.kevingo</groupid>
    <artifactid>my-project</artifactid>
    <version>1.0</version>
    <packaging>jar</packaging>
</project>


當少了其中的某個元素時,會出現類似以下的error:



整個專案的名稱是這樣命名的:groupId:artifactId:packaging:version,就上面的例子而言,完整的專案名稱會是:com.kevingo:my-project:jar:1.0

在POM檔中,除了以上的幾個必要元素外,還有一些是經常會用到的元素,包括:

dependencies:宣告了專案中所有會需要用到的Libraries,每一個所引入的Library,都會用一個dependency元素所包住,如下所示:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <type>jar</type>
        <scope>test</scope>
        <optional>true</optional>
    </dependency>
</dependencies>


上面的範例中在專案裡面引入了一個junit的Library,當你將這段設定檔寫到pom.xml中,Maven就會自動將junit引入。

【相關閱讀】
POM Reference
JUnit Gossip: POM 設定檔

Share this post!

Bookmark and Share

0 意見: