maven工程pom.xml文件解读
maven的核心是pom.xml,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述如何构建,声明项目依赖。以Hello World项目为例,创建一个hello-world的文件夹,里面新建一个pom.xml文件,内容如下:
<?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> <groupId>com.autonavi</groupId> <artifactId>roadtaskservice</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>roadtaskservice</name> </project>
代码的第一行是XML头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具帮助我们快速编辑POM。这段代码中最重要的是包含groupId,artifactId和version的三行,这三个元素定义了一个项目的基本坐标,在maven的世界,任何的jar,pom或者war都是以基于这些基本的坐标进行区分的。
groupId定义了项目 属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,artifactId定义了当前maven项目在组中的唯一ID,我们为这个Hello World项目定义artifactId为hello-world。version指定了Hello World项目当前的版本--1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
如果需要引用jar包,需要dependencies元素,该元素下可以包含多个dependency元素以声明项目的依赖。例如下面的依赖项。
<dependencies> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> <scope>compile</scope> </dependency> </dependencies>
除了groupId,artifactId,version这三个必不可少的元素,还有一个scope元素,表示依赖范围,若依赖范围为test,则表示该依赖只对测试有效。
作者:cjingzm
出处:http://www.cnblogs.com/cjingzm/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。