Maven学习笔记

一、Maven POM(Project Object Model)

POM中可以指定以下配置:

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

POM文件都需要的project元素,三个必须元素和两个非必须元素:

  • project:工程根标签
  • groupId(必须):命名方式与java包名的表示方式类似,通常与域名反向一一对应
  • artifactId(必须):定义实际项目中的一个Maven项目(模块),推荐使用实际项目名称作为artifactId的前缀
  • version(必须):定义Maven项目当前所处的版本
  • packaging(非必须):定义Maven项目的打包方式,如jar、war,默认为jar包,打包方式会影响到构建的生命周期
  • classifier(不能直接定义):用来帮助定义构建输出的一些附属构件

父(Super)POM

  • 父(Super)POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的 依赖时,它会到 Super POM 中配置的默认仓库 http://repo1.maven.org/maven2 去下载。
  • Maven 使用 mvn help:effective-pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被重写。

二、Maven构建生命周期

Maven构建生命周期

  1. Clean生命周期:项目的清理的处理

当我们执行mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下阶段:

  • pre-clean:执行一些需要在clean之前完成的工作
  • clean:移除所有上一次构建生成的文件
  • post-clean:执行一些需要在clean之后立刻完成的工作
  1. Default (Build) 生命周期:项目部署的处理

Default (Build) 生命周期是Maven的主要生命周期,被用于构建应用。

  1. Site 生命周期:项目站点文档创建的处理

Maven Site 插件一般用来创建新的报告文档、部署站点等。

  • pre-site:执行一些需要在生成站点文档之前完成的工作
  • site:生成项目的站点文档
  • post-site: 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
  • site-deploy:将生成的站点文档部署到特定的服务器上

三、Maven依赖管理

依赖的基本坐标gav:

  • groupId
  • artifactId
  • version

依赖类型type:

  • 依赖的类型,对应于项目坐标定义的packaging
  • 默认值为jar

依赖的范围scope:

标记依赖是否可选:

  • optional

排除传递性依赖:

  • exclusions
  • 当声明exclusions时只需要groupId和artifactId,不需要version元素

依赖调节:

  • 第一原则:路径最近者优先
  • 第二原则:第一声明者优先

四、Maven仓库


Maven依赖搜索顺序:

  1. 搜索本地仓库
  2. 搜索远程仓库
  3. 若均没有所需构件,Maven报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值