Maven基础讲解及使用
Maven
https://share.mubu.com/doc/2jI39bl2PIm
一 : 简介
(一) 概述
用于帮助我们构建java项目
自动构建, 依赖管理
Ant --> maven --> grovy
(二) 优点
- 统一管理jar包, 节约磁盘空间
- Jar包所依赖的jar包会自动导入 --> 依赖传递
- 提供了*仓库, 只要添加了依赖坐标, 就会从*仓库自动下载
- 可以拆分项目, 为分布式提供了工程结构
(三) 构建
构建就是用java, img, css, js文件生产一个项目的过程
Maven实现了自动化构建
二 : 安装
(一) 官网
https://archive.apache.org/dist/maven/maven-3/
(二) 配置文件(maven/conf/settings.xml)
- 修改本地仓库
- 镜像仓库配置
华为云
阿里云
3. 指定jdk版本
(三) 与IDE集成
- Eclipse
三 : maven的核心概念
(一) Pom
Project object model, 项目对象模型
学习maven重点需要掌握的就是pom.xml配置文件
(二) 目录结构
约定大于配置
如果创建项目的时候使用模板, 那么可能会出现工程目录不健全的情况, 需要大家背会目录结构
项目名称
src
|-----> main # 主程序目录
|—> java # 主程序源码文件
|—> resources # 主程序配置文件
|—> webapp # web工程的静态资源文件
| —> web.xml # web项目的发动机
|-----> test # 测试程序目录
| —> java # 测试程序源码文件
| —> resources # 测试程序的配置文件
(三) 坐标
Maven工程以gav控制依赖的jar包
- GroupId : 组ID, 唯一性, 域名反写
- ArtifactId: 项目ID, 项目名称
- Version: 版本号
自己的工程必须要经过安装才能出现在我们的本地仓库中
四 : 依赖管理
(一) 常用操作
(二) 依赖传递
当我们需要做文件上传的时候, 需要导入commons-fileupload的jar包, 此时, commons-fileupload依赖于commons-io, 那么我们只需要导入commons-fileupload, 至于commons-io也会自动导入
Scope : 作用域(依赖范围)
Compile : 默认值, 表示所依赖的jar包可以在主程序和测试程序中使用, 可以参与部署
Test : 只能在测试程序中使用
Provided : 编码过程中有效, 不参与部署
举例
有效性
依赖的传递性: 只有compile才可以进行依赖传递
(三) 依赖的排除
(四) Jar包冲突
- 后导入的jar包会覆盖之前的
- 路径最短者优先