网易微专业——Java Web开发工程师学习笔记(3):Maven
- Maven的优势:
1. 约定(惯例)优先原则,默认限定了目录结构
2. 三方依赖惯例,解决了依赖维护
3. 提供了一致的项目构建管理方法,减少了构建工作量
4. 插件式的架构,大量可重用插件
5. 很方便的集成IDE
6. 开源项目使用 Maven
- pom.xml:
1. (项目坐标)groupId,组织
2. (项目坐标)artifactId,项目标识符
3. (项目坐标)version,版本(SNAPSHOT代表未发布版本)
注意:项目坐标为项目的唯一标识,不可重复
4. packaging,类型,war
5. dependencies,依赖的项目
- 基本命令:
1. mvn archetype:generate 使用模板生成项目
2. mvn compile 编译源代码
3. mvn test 单元测试
4. mvn package 打包War
5. mvn deploy 部署
6. mvn site 项目相关的站点,在线文档
7. mvn clean 清理操作
8. mvn install 安装本地依赖
- 约定(惯例)优先于配置:
1. 标准的目录结构:*.java放到src/main/java目录下;*.class在target目录下;配置及静态文件
2. 项目描述符,pom.xml
- POM
1. xml文件,pom.xml
2. project基本等价于artifact
3. 项目类型packaging:pom,jar,war
4. 坐标
5. 属性,${property}
6. 依赖
7. 构建配置
8. 多项目、继承
9. 项目总体信息
- pom面向对象:继承
1. 继承或覆盖,Override
2. 可继承项:坐标属性,如groupId;依赖配置;插件配置;一般性信息,如开发者信息
- Super POM
1. 所有的Maven项目的POM都继承Super POM
2. 是Maven的组成部分
3. 超级POM定义了一组被所有项目共享的默认设置:默认的文件位置;统一的插件配置;默认的中央仓库配置……
- 多模块构建
1. parent项目,类型是pom:定义modules
2. 子模块中配置parent,继承
3. 统一配置提到parent项目中
3. 既使用继承也使用组合
- 依赖配置
1. 依赖坐标
2. scope依赖(范围):compile(初始默认)【编译、打包需要】、provided【编译时需要,打包时不需要】
3. 用于继承的pom配置:dependencyManagement【把需要继承的配置包起来】
- 构建生命周期
总结: