Maven學習總結(六):pom.xml文件的說明

 

什麼是POM?

 

POM是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫作pom.xml。做用相似ant的build.xml文件,功能更強大。該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目受權、項目的url、項目的依賴關係等等。事實上,在Maven世界中,project能夠什麼都沒有,甚至沒有代碼,可是必須包含pom.xml文件。apache

 

1 maven的協做相關屬性

  一個最簡單的pom.xml的定義必須包含modelVersion、groupId、artifactId和version這四個元素,固然這其中的元素也是能夠從它的父項目中繼承的。在Maven中,使用groupId、artifactId和version組成groupdId:artifactId:version的形式來惟一肯定一個項目:app

複製代碼
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 含義:組織標識,定義了項目屬於哪一個組,風向標,座標,或者說若把本項目打包 用途:此名稱則是本地倉庫中的路徑,列如:otowa.user.dao,在M2_REPO目錄下,將是: otowa/user/dao目錄 命名規範:項目名稱,模塊,子模塊 --> <groupId>otowa.user.dao</groupId> <!-- 含義:項目名稱也能夠說你所模塊名稱,定義當面Maven項目在組中惟一的ID 用途:例如:user-dao,在M2_REPO目錄下,將是:otowa/user/dao/user-dao目錄 命名規範:惟一就好 --> <artifactId>user-dao</artifactId> <!-- 含義:項目當前的版本號 用途:例如:0.0.1-SNAPSHOT,在M2_REPO目錄下,將是:otowa/user/dao/user-dao/0.0.1-SNAPSHOT目錄 --> <version>0.0.1-SNAPSHOT</version> <!-- 打包的格式,能夠爲:pom , jar , maven-plugin , ejb , war , ear , rar , par --> <packaging>war</packaging> <!-- 元素聲明瞭一個對用戶更爲友好的項目名稱 --> <name>maven</name> </project>
複製代碼

二、JavaProject的pom.xml文件說明

  經過Maven構建的JavaProject,在項目的根目錄下都會存在一個pom.xml文件,這個文件是Maven的核心。maven

    一、pom意思就是project object model。ui

    二、pom.xml包含了項目構建的信息,包括項目的信息、項目的依賴等。url

    三、pom.xml文件是能夠繼承的,大型項目中,子模塊的pom.xml通常都會繼承於父模塊的pom.xmlspa

  pom.xml文件的內容以下:code

複製代碼
 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  2  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  3 <modelVersion>4.0.0</modelVersion>  4  5 <groupId>com.mycompany.app</groupId>  6 <artifactId>myapp</artifactId>  7 <version>1.0-SNAPSHOT</version>  8 <packaging>jar</packaging>  9 10 <name>myapp</name> 11 <url>http://maven.apache.org</url> 12 13 <properties> 14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 15 </properties> 16 17 <dependencies> 18 <dependency> 19 <groupId>junit</groupId> 20 <artifactId>junit</artifactId> 21 <version>3.8.1</version> 22 <scope>test</scope> 23 </dependency> 24 </dependencies> 25 </project>
複製代碼

  pom.xml文件的節點元素說明:xml

    <project>       pom文件的頂級節點
    <modelVersion>     object model版本,對Maven2和Maven3來講,只能是4.0.0 
    <groupId>       項目建立組織的標識符,通常是域名的倒寫
    <artifactId>      定義了項目在所屬組織的標識符下的惟一標識,一個組織下能夠有多個項目
    <version>        當前項目的版本,SNAPSHOT,表示是快照版本,在開發中
對象

    <packaging>      打包的方式,有jar、war、ear等
    <name>        項目的名稱
    <url>          項目的地址
blog

    <properties>    屬性配置,好比:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <dependencies>     構建項目依賴的jar

  其中由groupId、artifactId和version惟一的肯定了一個項目座標

相關文章
相關標籤/搜索