轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6628201.html html
一個pom.xml中包含了許多標籤,各個標籤是對項目生命週期、依賴管理的配置。經常使用的主要有:apache
1:<peoject>:pom.xml的根標籤,一個maven項目用一對<peoject></project>標籤包裹。app
2:<modelVersion>:maven的版本maven
3:當前項目的座標以及打包方式:ide
<groupId>:企業網址反寫+項目名ui
<artifactId>:項目名-模塊名url
<version>:版本號+類型spa
版本號由三個整數表示,每一個整數用「.」分隔,表示:大版本號.分支版本號.小版本號插件
類型:版本類型。主要有:snapshot快照版本(簡化版本)、alpha內測版、beta公測版、release穩定版、GA正式發佈版code
<packaging>:打包類型,默認是jar,能夠配置成war、zip、pom類型。
4:<name>:當前項目名
5:<url>:項目地址
6:<description>:項目描述信息
7:<developers>:開發者信息
8:<licenses>:項目許可證信息,用來發布時授予別人使用此項目的權利
9:<organization>:組織信息,企業信息
以上都是對這個maven項目的相關信息配置。
10:<properties>:屬性值標籤,也叫變量標籤。與Ant中的property同樣,能夠經過這個標籤包含一些屬性並指定屬性值。那麼在pom.xml的其餘地方,能夠經過EL表達式訪問變量的方法——${屬性名} 來獲取具體的屬性值。通常這個用來做爲整個pom.xml中須要重複使用的內容或者全局變量使用。
11:依賴標籤
<dependencies> <!--一個依賴包--> <dependency> <!--經過座標指定依賴包--> <groupId> </groupId> <artifactId> </artifactId> <version> </version> <!--可選項:依賴範圍。有六個可選值:經常使用compile/provided/test/runtime等--> <scope>一個範圍</scope> <!--可選項:排除依賴傳遞:即:當前項目依賴當前配置的依賴包A時,若是這個依賴包又依賴其餘包B,這裏能夠選擇排除依賴的傳遞性,不下載導入B--> <exclusions> <exclusion>
<!--被排除的依賴包座標--> <groupId> </groupId> <artifactId> </artifactId> <version> </version>
</exclusion> </exclusions> </dependency> </dependencies>
12:依賴管理標籤:主要用於制定父pom.xml,其餘項目能夠繼承這個pom.xml,從而避免重複定義某些depency。
<depencyManagement> <depencies> <depency> 依賴包的座標... </depency> </depencies> </depencyManagement>
13:<build>:項目支持標籤,通常用來引入插件
<build> <plugins> <plugin> <!--插件座標--> <groupId> </groupId> <artifactId> </artifactId> <version> </version> 其餘設置... </plugin> </plugins> </build>
14:<parent>:繼承標籤,用於繼承父項目。
15:<moudules>:聚合標籤,用於聚合多個maven項目,這樣用某指令執行這個pom就會把聚合的各項目所有執行,同時處理多個項目。
示例:一個簡單的構建JavaWeb項目的pom.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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>WebApp</artifactId> <packaging>war</packaging> <version>1.0</version> <name>WebApp Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency> <!--commons-io爲commons-fileupload的可選依賴包--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> </dependencies> <build> <finalName>WebApp</finalName> </build> </project>