文档章节

Maven之Pom解析

蓝蝶飞扬
 蓝蝶飞扬
发布于 2016/04/06 13:52
字数 512
阅读 60
收藏 0

1.POM 包含了关于工程和各种配置细节的信息,也包含了目标和插件。

当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需要的配置信息,然后执行目标。能够在 POM 中设置的一些配置如下:

  • project dependencies

  • plugins

  • goals

  • build profiles

  • project version

  • developers

  • mailing list

在创建 POM 之前,我们首先确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。

需要说明的是每个工程应该只有一个 POM 文件。

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

  • 在仓库中的工程标识为 groupId:artifactId:version

  • POM.xml 的根元素是 project,它有三个主要的子节点:

节点 描述
groupId 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.company.bank 拥有所有的和银行相关的项目。
artifactId 这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。
version 这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。例如:
com.company.bank:consumer-banking:1.0
com.company.bank:consumer-banking:1.1.

2.Super Pom

所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 也被称作 Super POM,它包含了一些可以被继承的默认设置。

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

查看 Super POM 默认配置的一个简单方法是执行以下命令:mvn help:effective-pom


本文转载自:http://wiki.jikexueyuan.com/project/maven/pom.html

共有 人打赏支持
蓝蝶飞扬
粉丝 25
博文 122
码字总数 89785
作品 0
西双版纳
Maven插件

Maven的插件 我们知道mvn 只是抽象了项目构建的生命周期,生命周期本身是不做任何工作的,具体的工作都是由插件来完成。每个个插件都有一个或多个目标(goal),我们通常执行的mvn命令就是去调...

zhcntmm
2017/12/21
5
0
插件解析机制

插件仓库: 与依赖构件一样,插件构件同样基于坐标存储在Maven仓库中。值得一提的是,Maven会区别对待依赖的远程仓库与插件的远程仓库。当Maven需要的依赖在本地仓库不存在时,它会去所配置的...

shamgod_code
2016/12/27
1
0
maven构建灵活性

Maven内置了三大特性:属性、Profile和资源过滤来支持构建的灵活性。 maven属性 事实上有六种类型的Maven属性: 内置属性:主要有两个常用内置属性——${basedir}表示项目根目录,即包含pom...

张欢19933
2016/12/23
12
0
maven内置属性

Maven内置了三大特性:属性、Profile和资源过滤来支持构建的灵活性。 事实上有六种类型的Maven属性: 内置属性:主要有两个常用内置属性——${basedir}表示项目根目录,即包含pom.xml文件的目...

vshcxl
2016/03/30
202
0
java生成二维码图片和条形码图片

1.生成和解析二维码图片 如果是maven工程 在pom文件中加入依赖如下: <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.2.0</version> </depe......

kimyeongnam
2016/07/25
63
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

最全最强解析:支付宝钱包系统架构内部剖析(架构图)

支付宝系统架构概况 典型处理默认 资金处理平台 财务会计 支付清算 核算中心 交易 柔性事务 支付宝的开源分布式消息中间件–Metamorphosis(MetaQ) Metamorphosis (MetaQ) 是一个高性能、高可...

晨猫
39分钟前
5
0
竞品分析

那什么样的场景需要用关键纬度分析法分析竞品呢? 竞品分析的目的是为了看竞品们和自己产品重合的业务都具备哪些功能点,以及这些功能是怎么做的,以此确定自己产品的优化方向。 竞品们的业务...

于谦老师
46分钟前
1
0
OSChina 周三乱弹 —— 公司女同事约我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享水木年华的单曲《蝴蝶花(2002年大提琴版)》 《蝴蝶花(2002年大提琴版)》- 水木年华 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
1K
17
Linux环境搭建 | VMware下共享文件夹的实现

在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了。本文介绍了两种共享文...

良许Linux
今天
9
0
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

长头发-dawn
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部