Maven的POM文件简介
2013-02-21 11:48
260 查看
转自:http://www.cnblogs.com/ericsun/archive/2011/10/17/2215311.html
POM是项目对象模型(Project Object Model)的缩写,下面援引一下百度百科中对于POM的解释
此POM脚本允许编译、测试以及生成基本的文档。你可能会问单凭这区区15行代码是如何做到的,实际上这是一个十分好且基本的问题。答案在于Maven对于其Super POM(译者注:意即所有POM脚本的父脚本)的隐匿调用。
在Java里,所有对象都是java.lang.Object的子对象,同样的,在Maven中,所有POM也都是一个Super POM的子脚本。这个Super POM乍一看可能让你觉得恐怖,如果你有兴趣进一步了解它,请参阅附录B。要记住的最关键一点是,Super POM包含了重要信息,因此你不必在创建一个POM的时候重复这些信息。
project:这是所有pom文件中的最顶级元素,意即根元素。
modelVersion:此必需的元素说明了本POM所使用的模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,以当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
groupId:本元素表示创建本项目的组织的唯一标识。groupId是一个项目的核心关键标识之一,它基于组织的完整属性域名。
artifactId:表示本项目的主要项目的唯一基本名。一个典型的由Maven生成的项目名称将会是如下的格式:<artifactId>-<version>.<extension>,其他部分诸如源包也使用artifactId作为它们名称的一部分。 packaging:表示本项目所使用的包类型(JAR, WAR,EAR等)。这不仅仅意味着将使用JAR,、WAR、EAR打包,也表明在作为构建流程一部分的,一个特定的生命周期。此生命周期是一个主题处理,会在本章的稍后提到。现在,只要记住此选定的项目包扮演的是定制构建生命周期的角色。本元素的默认值是jar,因此在大多数情况下,你不需要去特别指定。
version:表示项目的版本,Maven对于你的版本管理大有帮助,你会经常看到一个版本的SNAPSHOT(快照),指示项目在开发中的不同状态。
name:项目的显示名称,常用于Maven生成的文档当中,并在构建过程中,为你的项目或其他的项目作为一种依赖使用。
url:项目的网站网址。
description:项目的介绍。
POM是项目对象模型(Project Object Model)的缩写,下面援引一下百度百科中对于POM的解释
定义
Maven是以项目为中心的设计。POM是Maven对一个单一项目的描述。没有POM的话,Maven是毫无用处的——POM是Maven的核心。是POM实现的并驱动了这种以模型来描述的构建方式。POM示例
下面的POM示例,是可能用于构建和测试一个项目的脚本。一个POM是一个XML文档,看起来类似于如下的示例:<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
此POM脚本允许编译、测试以及生成基本的文档。你可能会问单凭这区区15行代码是如何做到的,实际上这是一个十分好且基本的问题。答案在于Maven对于其Super POM(译者注:意即所有POM脚本的父脚本)的隐匿调用。
规则
Maven的POM文档带有全部的Maven所鼓励的默认规则,这类似于Java语言的java.lang.Object对象。在Java里,所有对象都是java.lang.Object的子对象,同样的,在Maven中,所有POM也都是一个Super POM的子脚本。这个Super POM乍一看可能让你觉得恐怖,如果你有兴趣进一步了解它,请参阅附录B。要记住的最关键一点是,Super POM包含了重要信息,因此你不必在创建一个POM的时候重复这些信息。
包含元素
一个POM包含了关于你的项目的所有重要信息。之前提供的POM示例,非常简单,但仍然显示出了一个POM所包含的一些关键元素。project:这是所有pom文件中的最顶级元素,意即根元素。
modelVersion:此必需的元素说明了本POM所使用的模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,以当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
groupId:本元素表示创建本项目的组织的唯一标识。groupId是一个项目的核心关键标识之一,它基于组织的完整属性域名。
artifactId:表示本项目的主要项目的唯一基本名。一个典型的由Maven生成的项目名称将会是如下的格式:<artifactId>-<version>.<extension>,其他部分诸如源包也使用artifactId作为它们名称的一部分。 packaging:表示本项目所使用的包类型(JAR, WAR,EAR等)。这不仅仅意味着将使用JAR,、WAR、EAR打包,也表明在作为构建流程一部分的,一个特定的生命周期。此生命周期是一个主题处理,会在本章的稍后提到。现在,只要记住此选定的项目包扮演的是定制构建生命周期的角色。本元素的默认值是jar,因此在大多数情况下,你不需要去特别指定。
version:表示项目的版本,Maven对于你的版本管理大有帮助,你会经常看到一个版本的SNAPSHOT(快照),指示项目在开发中的不同状态。
name:项目的显示名称,常用于Maven生成的文档当中,并在构建过程中,为你的项目或其他的项目作为一种依赖使用。
url:项目的网站网址。
description:项目的介绍。
相关文章推荐
- maven项目中pom文件中问题的解决方案
- Maven入门2-pom.xml文件与settings.xml文件
- Maven的配置文件pom.xml
- 史上最全的maven pom.xml文件教程详解
- maven的pom.xml配置文件中常用的配置标签解析
- 刚刚安装好的Eclipse,导入一个Maven项目之后POM文件的第一行一直报错,看了好多帖子也没解决,会是版本问题吗,请各路大神帮忙解决一下,万分感谢!!!
- Maven之pom.xml与setting.xml配置文件详解
- Maven中POM文件的理解
- Maven打包pom里面配置exclude 排除掉环境相关的配置文件
- 【maven】IDEA:存在jar包,pom.xml文件没报错,但是Maven-Project-Dependencies有红线报错
- maven之pom文件详解
- Maven pom.xml文件配置记录
- maven项目中pom文件配置nexus仓库
- Maven的pom文件那些事
- 史上最全的maven pom.xml文件教程详解
- MyEclipse中maven项目pom文件报missing artifact错误
- maven pom文件之 build设置
- 在maven的pom文件中引入servlet-api的方法
- ideal+maven+scala配置spark的pom.xml文件内容,直接写spark代码