Maven的配置文件pom.xml

什麼是POM?

POM 是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫做pom.xml。在Maven中,當談到Project的時候,不僅僅是一堆 包含代碼的文件。一個Project往往包含一個配置文件,包括了與開發者有關的,缺陷跟蹤系統,組織與許可,項目的URL,項目依賴,以及其他。它包含 了所有與這個項目相關的東西。事實上,在Maven世界中,project可以什麼都沒有,甚至沒有代碼,但是必須包含pom.xml文件。

概覽

下面是一個POM項目中的pom.xml文件中包含的元素。注意,其中的modelVersion是4.0.0,這是當前僅有的可以被Maven2&3同時支持的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>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
    <packaging>...</packaging>
    <dependencies>...</dependencies>
    <parent>...</parent>
    <dependencyManagement>...</dependencyManagement>
    <modules>...</modules>
    <properties>...</properties>
    
    <!-- 構建過程的設置 -->
    <build>...</build>
    <reporting>...</reporting>
    
    <!-- 項目信息設置 -->
    <name>...</name>
    <description>...</description>
    <url>...</url>
    <inceptionYear>...</inceptionYear>
    <licenses>...</licenses>
    <organization>...</organization>
    <developers>...</developers>
    <contributors>...</contributors>
    
    <!-- 環境設置 -->
    <issueManagement>...</issueManagement>
    <ciManagement>...</ciManagement>
    <mailingLists>...</mailingLists>
    <scm>...</scm>
    <prerequisites>...</prerequisites>
    <repositories>...</repositories>
    <pluginRepositories>...</pluginRepositories>
    <distributionManagement>...</distributionManagement>
    <profiles>...</profiles>
</project>




基本的設置:

POM包含了一個project所需要的所有信息,當然也就包含了構建過程中所需要的插件的配置信息,事實上,這裏申明瞭"who","what",和"where",然而構建生命週期(build lifecycle)s中說的是"when"和"how"。這並不是說POM並能影響生命週期的過程-事實上它可以。例如,配置一個可以嵌入ant任務到POM的mavem-antrun-plugin。它基本上就是一個聲明。就像build.xml告訴ant當運行時它該做什麼一樣,一個POM申明瞭它自己的配置。如果外力迫使生命週期跳過了ant插件的執行,這並不影響那些已經執行過的插件產生的效果。這一點和build.xml不一樣。

<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>org.codehaus.mojo</groupId>
    <artifactId>my-project</artifactId>
    <version>1.0</version>
</project>


Maven座標

上面的POM定義的是Maven2&3都承認的最小部分。groupId:artifactId:version是必須的字段(儘管在繼承中groupId和version不需要明確指出)。這三個字段就像地址和郵戳,它標記了倉庫中的特定位置,就像Maven projects的座標系統一樣。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章