Maven配置文件pom.xml详解
什么是pom?
pom是项目对象模型(project object model)的简称,它是maven项目中的文件,使用xml表示,名称叫做pom.xml。在maven中,当谈到project的时候,不仅仅是一堆包含代码的文件。一个project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的url,项目依赖,以及其他。它包含了所有与这个项目相关的东西。事实上,在maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。
概览
下面是一个pom项目中的pom.xml文件中包含的元素。注意,其中的modelversion是4.0.0,这是当前仅有的可以被maven2&3同时支持的pom版本,它是必须的。
<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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <!-- 基本设置 --> <groupid>...</groupid> <artifactid>...</artifactid> <version>...</version> <packaging>...</packaging> <dependencies>...</dependencies> <parent>...</parent> <dependencymanagement>...</dependencymanagement> <modules>...</modules> <properties>...</properties> <!-- 构建过程的设置 --> <build>...</build> <reporting>...</reporting> <!-- 项目信息设置 --> <name>...</name> <description>...</description> <url>...</url> <inceptionyear>...</inceptionyear> <licenses>...</licenses> <organization>...</organization> <developers>...</developers> <contributors>...</contributors> <!-- 环境设置 --> <issuemanagement>...</issuemanagement> <cimanagement>...</cimanagement> <mailinglists>...</mailinglists> <scm>...</scm> <prerequisites>...</prerequisites> <repositories>...</repositories> <pluginrepositories>...</pluginrepositories> <distributionmanagement>...</distributionmanagement> <profiles>...</profiles> </project>
基本的设置:
pom包含了一个project所需要的所有信息,当然也就包含了构建过程中所需要的插件的配置信息,事实上,这里申明了"who","what",和"where",然而构建生命周期(build lifecycle)s中说的是"when"和"how"。这并不是说pom并能影响生命周期的过程-事实上它可以。例如,配置一个可以嵌入ant任务到pom的mavem-antrun-plugin。它基本上就是一个声明。就像build.xml告诉ant当运行时它该做什么一样,一个pom申明了它自己的配置。如果外力迫使生命周期跳过了ant插件的执行,这并不影响那些已经执行过的插件产生的效果。这一点和build.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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.codehaus.mojo</groupid> <artifactid>my-project</artifactid> <version>1.0</version> </project>
maven坐标
上面的pom定义的是maven2&3都承认的最小部分。groupid:artifactid:version是必须的字段(尽管在继承中groupid和version不需要明确指出)。这三个字段就像地址和邮戳,它标记了仓库中的特定位置,就像maven projects的坐标系统一样。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。