maven
1、POM
pom文件是maven工程的基本工作单元,在项目的根目录下(模块项目则在模块的根目录下)
POM 中可以指定以下配置:
- 项目依赖
- 插件
- 执行目标
- 项目构建 profile
- 项目版本
- 项目开发者列表
- 相关邮件列表信息
1 |
|
maven 生命周期
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
---|---|---|
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 打包 | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
maven 仓库
- 本地(local)
- 中央(central)
- 私服 (private)
查找顺序,先在本地仓库查找依赖,如果没有的话去私服上找依赖,并缓存到本地,如果私服找不到,则去中央仓库中寻找,并缓存到私服。
maven 依赖引入
在pom文件中使用dependency标签导入maven依赖
多重依赖解决方式
路径最近者优先
第一声明者优先
dependencyManagement: 能让子POM继承父POM的配置的同时, 又能够保证子模块的灵活性: 在父POMdependencyManagement元素配置的依赖声明不会实际引入子模块中, 但能够约束子模块dependencies下的依赖的使用(子模块只需配置groupId与artifactId, 见下).
pluginManagement: 与dependencyManagement类似, 配置的插件不会造成实际插件的调用行为, 只有当子POM中配置了相关plugin元素, 才会影响实际的插件行为.
maven 模块聚合和模块继承
模块聚合
推荐将聚合POM放在项目目录的最顶层, 其他模块作为聚合模块的子目录
模块继承
子项目可以继承父项目的pom
推荐: 模块继承与模块聚合同时进行,这意味着, 你可以为你的所有模块指定一个父工程, 同时父工程中可以指定其余的Maven模块作为它的聚合模块. 但需要遵循以下三条规则:
在所有子POM中指定它们的父POM;
将父POM的packaging值设为pom;
在父POM中指定子模块/子POM的目录
超级pom-约定优先于配置
任何一个Maven项目都隐式地继承自超级POM, 因此超级POM的大量配置都会被所有的Maven项目继承, 这些配置也成为了Maven所提倡的约定.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!