转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6628201.html
一个pom.xml中包含了许多标签,各个标签是对项目生命周期、依赖管理的配置。常用的主要有:
1:<peoject>:pom.xml的根标签,一个maven项目用一对<peoject></project>标签包裹。
2:<modelVersion>:maven的版本
3:当前项目的坐标以及打包方式:
<groupId>:企业网址反写+项目名
<artifactId>:项目名-模块名
<version>:版本号+类型
版本号由三个整数表示,每个整数用“.”分隔,表示:大版本号.分支版本号.小版本号
类型:版本类型。主要有:snapshot快照版本(简化版本)、alpha内测版、beta公测版、release稳定版、GA正式发布版
<packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。
4:<name>:当前项目名
5:<url>:项目地址
6:<description>:项目描述信息
7:<developers>:开发者信息
8:<licenses>:项目许可证信息,用来发布时授予别人使用此项目的权利
9:<organization>:组织信息,企业信息
以上都是对这个maven项目的相关信息配置。
10:依赖标签
<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>
11:依赖管理标签:主要用于制定父pom.xml,其他项目可以继承这个pom.xml,从而避免重复定义某些depency。
<depencyManagement> <depencies> <depency> 依赖包的坐标... </depency> </depencies> </depencyManagement>
12:<build>:项目支持标签,一般用来引入插件
<build> <plugins> <plugin> <!--插件坐标--> <groupId> </groupId> <artifactId> </artifactId> <version> </version> 其他设置... </plugin> </plugins> </build>
13:<parent>:继承标签,用于继承父pom.xml
14:<moudules>:聚合标签,用于聚合多个pom.xml,这样执行这个pom就会把聚合的各个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>