maven
“专家”“内行”,本质是项目管理工具
把项目开发和进程管理抽象成项目对象模型POM(Project Object Model)
基本概念
仓库
- 本地仓库: 本地仓库,默认在user目录下.m2/repository,连接远程仓库获取资源
- 远程仓库: 分为中央仓库和私服仓库
- 中央仓库: maven团队维护,所有开源jar包的集合
- 私服仓库: 保护具有版权的资源
坐标
- groupID:组织ID
- artifactID:项目ID
- version:版本号
- packaging:打包方式
依赖管理
依赖范围:
scope | main主代码 | test测试代码 | package打包 |
---|---|---|---|
compile | √ | √ | √ |
test | √ | ||
provided | √ | √ | |
runtime | √ |
依赖传递:
tag | content | description |
---|---|---|
dependencies | 依赖列表 | 声明“依赖们”坐标 |
dependency | 依赖 | 单个依赖设置 |
optional | true/false | 可选依赖,不透明 |
exclusions | 排除列表 | 主动断开依赖的资源,不需要 |
生命周期与插件
项目构建生命周期lifecycle:
initialize->compile->test->package->install->deploy
插件plugin:
tag | description |
---|---|
plugins | 插件列表 |
plugin | 单个插件设置 |
groupId | 组织ID |
artifactId | 项目ID |
version | 版本号 |
executions | 插件执行配置 |
execution | 插件执行配置 |
goals | 插件目标列表 |
goal | 插件目标 |