Maven基础知识
Maven常用命令
# 清理
mvn clean
# 编译主程序
mvn compile
# 编译测试程序
mvn test-compile
# 执行测试
mvn test
# 打包
mvn package
# 安装
mvn install
# 生成站点
mvn site
坐标
在Maven中,由groupid、artifactid、version来唯一确定一个Maven工程。
仓库
仓库分类
- 本地仓库
- 远程仓库
- 私服
- 中央仓库
- 中央仓库镜像
仓库中保存的内容:Maven工程
- Maven自身所需要的插件
- 第三方框架或工具的jar包
- 我们自己开发的Maven工程
依赖
Maven解析依赖信息时会到本地仓库中查找被依赖的jar包。对于我们自己开发的Maven工程,使用mvn install命令安装后就可以进入仓库。
依赖的范围
- compile
- test
- provided
| 依赖的范围 | 对主程序是否有效 | 对测试程序是否有效 | 是否参与打包 | 是否参与部署 |
|---|---|---|---|---|
| compile | 有效 | 有效 | 参与 | 参与 |
| test | 无效 | 有效 | 不参与 | 不参与 |
| provided | 有效 | 有效 | 不参与 | 不参与 |
compile和provided比较:compile在开发、部署、运行阶段都提供依赖,provided只在开发阶段提供依赖。
依赖具有传递性。非compile范围的依赖不能传递。
依赖排除:使用exclusions排除不需要的jar包。
依赖原则(解决工程之间的jar包冲突)
- 路径最短者优先
- 路径相同时先声明者优先
统一管理jar包的版本
- 在properties标签内使用自定义标签统一声明版本号
- 在需要统一版本的位置,使用
${自定义标签名}引用声明的版本号
继承
- 创建一个Maven工程作为父工程,打包方式为pom
- 在子工程中声明对父工程的引用
- 由父工程统一管理依赖,子工程添加依赖时无需指定版本
聚合
- 一键安装各个模块工程
- 在总的聚合工程中的pom.xml文件使用
modules标签配置即可
生命周期
Maven生命周期定义了各个构建环节的执行顺序。
Maven有三套相互独立的生命周期
- Clean Lifecycle:在进行真正的构建之前进行一些清理工作
- Default Lifecycle:构建的核心部分,编译、测试、打包、安装、部署等
- Site Lifecycle:生成项目报告、站点,发布站点
插件和目标
- 生命周期的各个阶段仅仅定义了要执行的任务是什么
- 各个阶段和插件的目标是相对应的
- 相似的目标由特定的插件来完成
自动部署
pom.xml文件
web
org.codehaus.cargo
cargo-maven2-plugin
1.2.3
8001
cargo-run
install
run
命令mvn deploy
Maven仓库
https://mvnrepository.com/