POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目构建 profile
  • 项目依赖
  • 插件
  • 执行目标
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

创建POM 文件pom.xml

在项目根目录下创建pom.xml文件。
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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- 模型版本 --><modelVersion>4.0.0</modelVersion><!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group --><groupId>com.companyname.project-group</groupId><!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --><artifactId>project-name</artifactId><!-- 版本号 --><version>1.0</version>
</project>

所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version

  • project 是工程的根标签
  • modelVersion要设置为4.0.0
  • groupId是工程组的标识
  • artifactId是工程的标识,通常是工程的名称。groupId和artifactId一起定义了artifact在仓库中的位置
  • version是工程的版本号,在 artifact 的仓库中,它用来区分不同的版本,如:com.companyname.project-group:project-name:1.0

父(Super)POM

父(Super)POM是 Maven 默认的 POM。所有的 POM 都会继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的依赖时,它会到 Super POM 中配置的默认仓库去下载。

Maven 使用 effective pom来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置(Super pom 加上工程自己的配置),当然这些配置可以被重写。

使用以下命令来查看 Super POM 默认配置:

mvn help:effective-pom

POM 标签可参考《POM 标签大全》

Maven POM介绍相关推荐

  1. java配置pom安装依赖包,Maven pom.xml 添加本地jar包依赖以及打包方法

    Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需 ...

  2. Maven实战——常用Maven插件介绍

    http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任 ...

  3. 在maven pom.xml中加载不同的properties ,如localhost 和 dev master等jdbc.properties 中的链接不一样...

    [参考]:maven pom.xml加载不同properties配置[转] 首先 看看效果: 点开我们项目中的Maven projects 后,会发现右侧 我们profile有个可勾选选项.默认勾选l ...

  4. 常用Maven插件介绍(下)(转)

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  5. Maven 持续介绍与注意事项

    本篇承接上一篇: maven 入门介绍 POM POM 代表工程对象模型.它是使用 Maven 工作时的基本组件,是一个 xml 文件.它被放在工程根目录下,文件命名为 pom.xml. 能够在 PO ...

  6. maven 入门介绍

    Maven是什么? Maven: 中文翻译,"专家".基本上有两个用途 一是构建工具,  用来把源代码构建成可发布的构件.类似于ant; 另外一个是项目管理工具. 官方给出的定义是 ...

  7. Maven与Maven POM的区别

    Maven与Maven POM的区别 在用idea创建maven项目时,在Project Metadata界面Type选项下唯有Maven和Maven POM两个选项,我们应该怎么选择呢? 下面介绍一 ...

  8. Maven 概要介绍

    Maven 简介 Apache Maven 是一套软件工程管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven 工程结构 ...

  9. Maven pom.xml 全配置(二)不常用配置

    Maven pom.xml 全配置(二)不常用配置 这里贴出Maven pom.xml文件中使用率较少的配置参数,如果此篇文档中没有找到你想要的参数,移步Maven pom.xml 全配置(一)常用配 ...

  10. Maven pom.xml 全配置(一)常用配置

    Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...

最新文章

  1. AWS - Couldformation 初探
  2. CentOS安装Oracle全过程
  3. mail 发送email
  4. Flutter开发之iOS真机调试(六)
  5. SQL ALTER TABLE 语句
  6. Fater R-CNN 整体把握
  7. configure: error: xml2-config not found. Please check your libxml2 installation
  8. HTTP协议···(一)
  9. int sel 在c语言表示,C语言教程ch1初识C程序.ppt
  10. Gamma 函数与exponential power distribution (指数幂分布)
  11. 译文-Minor GC vs Major GC vs Full GC
  12. ORA-07445ORA-00108错误案例
  13. android tv 蓝牙服务_Android TV Remote Service
  14. CFS三层靶机搭建及其内网渗透
  15. Talib技术因子详解(九)
  16. Android 去掉Power键屏保功能,但保留长按关机功能。
  17. AIGC基础:从VAE到DDPM原理、代码详解
  18. 数据挖掘——关联规则挖掘
  19. 精灵图(sprite)CSS动画实现
  20. android flash路径动画,Flash制作沿着路径的动画

热门文章

  1. mysql netbeans_使用Netbeans操作MySQL数据库
  2. mysql netbeans_关于netbeans与mysql连接问题
  3. 面试题 - 浏览器兼容性问题与解决方案
  4. 6种继承的优点和缺点
  5. RedHat下载安装JDK的方法(方法二)
  6. IT30: 数字化转型之路
  7. openBravo数据库结构分析
  8. 谨慎选择我们的先验 - 对最优拟合概率分布搜索空间的一种约束
  9. 计算机网络第七版--概述知识点总结
  10. html广告位代码,javascript实现一个简单的广告位