maven之pom.xml配置文件详解

您所在的位置:网站首页 maven的pomxml怎么写 maven之pom.xml配置文件详解

maven之pom.xml配置文件详解

2024-07-10 11:30| 来源: 网络整理| 查看: 265

一、什么是pom pom代表项目对象模型,它是Maven中工作的基本组成单位。它是一个XML文件,始终保存在项目的基本目录中的pom.xml文件中。pom包含的对象是使用maven来构建的,pom.xml文件包含了项目的各种配置信息。 创建一个POM之前,应该要先决定项目组(groupId),项目名(artifactId)和版本(version),因为这些属性在项目仓库是唯一标识的。需要特别注意,每个项目都只有一个pom.xml文件。

二、pom中的节点分布如下

4.0.0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

三、各节点解释说明 1.基本配置信息

4.0.0 com.company.bank parent 1.0 war 节点 解释说明 modelVersion pom模型版本,maven2和3只能为4.0.0 groupId 这是项目组的编号,这在组织或项目中通常是独一无二的。 例如,一家银行集团com.company.bank拥有所有银行相关项目。 artifactId 这是项目的ID。这通常是项目的名称。 例如,consumer-banking。 除了groupId之外,artifactId还定义了artifact在存储库中的位置。 version 这是项目的版本。与groupId一起使用,artifact在存储库中用于将版本彼此分离。 例如:com.company.bank:consumer-banking:1.0,com.company.bank:consumer-banking:1.1 packaging 项目打包方式,有以下值:pom, jar, maven-plugin, ejb, war, ear, rar, par

2.依赖配置 (1) dependencies 项目相关依赖配置,如果在父项目写的依赖,会被子项目引用。一般会在父项目中定义子项目中所有共用的依赖。

junit junit 4.12

(2)parent 用于确定父项目的坐标位置。

com.learnPro SIP-parent 0.0.1-SNAPSHOT groupId: 父项目的组Id标识符 artifactId:父项目的唯一标识符 relativePath:Maven首先在当前项目中找父项目的pom,然后在文件系统的这个位置(relativePath),然后在本地仓库,再在远程仓库找。 version: 父项目的版本

(3) modules 有些maven项目会做成多模块的,这个标签用于指定当前项目所包含的所有模块。之后对这个项目进行的maven操作,会让所有子模块也进行相同操作。

com-a com-b com-c

(4) properties 用于定义pom常量

1.7

上面这个常量可以在pom文件的任意地方通过${Java.version}来引用

(5)dependencyManagement 配置写法同dependencies

.....

在父模块中定义后,子模块不会直接使用对应依赖,但是在使用相同依赖的时候可以不加版本号,这样的好处是,父项目统一了版本,而且子项目可以在需要的时候才引用对应的依赖。

父项目: junit junit 4.12 test 子项目: junit junit

3.构建配置

...... ...... reporting 该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。

5.项目信息

name:给用户提供更为友好的项目名 description:项目描述,maven文档中保存 url:主页的URL,maven文档中保存 inceptionYear:项目创建年份,4位数字。当产生版权信息时需要使用这个值 licenses:该元素描述了项目所有License列表。 应该只列出该项目的- license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。(如下) ... .... repo .... organization:1.name 组织名 2.url 组织主页url developers:项目开发人员列表(如下) contributors:项目其他贡献者列表,同developers .... ... ... ... Java Dev Web UI sun ... -5

6.环境配置 issueManagement 目的问题管理系统(Bugzilla, Jira, Scarab)的名称和URL

Bugzilla http://127.0.0.1/bugzilla/

ciManagement 项目的持续集成信息

continuum http://127.0.0.1:8080/continuum mail true true false false [email protected] system:持续集成系统的名字 url:持续集成系统的URL notifiers:构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告) type:通知方式 sendOnError:错误时是否通知 sendOnFailure:失败时是否通知 sendOnSuccess:成功时是否通知 sendOnWarning:警告时是否通知 address:通知发送到的地址 configuration:扩展项

mailingLists 项目相关邮件列表信息

User List [email protected] [email protected] [email protected] http://127.0.0.1/user/ http://base.google.com/base/1/127.0.0.1 ..... subscribe, unsubscribe: 订阅邮件(取消订阅)的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 archive:浏览邮件信息的URL post:接收邮件的地址

scm 许你配置你的代码库,供Maven web站点和其它插件使用

scm:svn:http://127.0.0.1/svn/my-project scm:svn:https://127.0.0.1/svn/my-project HEAD http://127.0.0.1/websvn/my-project connection, developerConnection:这两个表示我们如何连接到maven的版本库。connection只提供读,developerConnection将提供写的请求 写法如:scm:[provider]:[provider_specific] 如果连接到CVS仓库,可以配置如下:- scm:cvs:pserver:127.0.0.1:/cvs/root:my-project tag:项目标签,默认HEAD url:共有仓库路径

prerequisites 项目构建的前提

2.0.6

repositories,pluginRepositories 依赖和扩展的远程仓库列表,同上篇文章,setting.xml配置中介绍的。

false always warn true never fail codehausSnapshots Codehaus Snapshots http://snapshots.maven.codehaus.org/maven2 default ... releases, snapshots:这是各种构件的策略,release或者snapshot。这两个集合,POM就可以根据独立仓库任意类型的依赖改变策略。如:一个人可能只激活下载snapshot用来开发。 enable:true或者false,决定仓库是否对于各自的类型激活(release 或者 snapshot)。 updatePolicy: 这个元素决定更新频率。maven将比较本地pom的时间戳(存储在仓库的maven数据文件中)和远程的. 有以下选择: always, daily (默认), interval:X (x是代表分钟的整型) , never. checksumPolicy:当Maven向仓库部署文件的时候,它也部署了相应的校验和文件。可选的为:ignore,fail,warn,或者不正确的校验和。 layout:在上面描述仓库的时候,提到他们有统一的布局。Maven 2有它仓库默认布局。然而,Maven 1.x有不同布局。使用这个元素来表明它是default还是legacy。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3