Maven是专门用于管理和构建Java项目的工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。他的主要功能有:
提供了一套标准化的项目结构。所有IDE使用Maven构建的项目结构完全一样,在不同IDE上可以通用。
提供了一套标准化的构建流程(编译,测试,打包,发布……)
提供了一套依赖管理机制。依赖管理:管理项目所依赖的第三方资源(jar包、插件等)
Maven模型 Maven仓库本地仓库(Local Repository):自己计算机上的一个目录中央仓库(Central Repository):有Maven团队维护的全球唯一的仓库私服仓库(Remote Repository):一般由公司团队搭建的私有仓库
当项目中使用功能坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
如果有,则在项目中直接引用如果没有,则去中央仓库下载到本地仓库
还可以搭建远程仓库,将来jar包的查找顺序则变为:本地仓库 → 远程仓库 → 中央仓库
Maven基本使用 Maven常用命令compile 编译:执行成功会生成target目录,存放了编译后的.class文件clean 清理:会删除已有的target目录test 测试:执行test目录下的java文件package 打包:在target目录下生成本项目的jar包install 安装:将jar包安装在本地仓库中 Maven生命周期
Maven构建项目生命周期描述的是一次构建过程经历了多少个事件Maven对项目构建的生命周期划分为3套
clean:清理工作default:核心工作,例如编译,测试,打包,安装等site:产生报告,发布站点等
注意:同一生命周期内,执行后边的命令,前边的所有命令会自动执行
Maven坐标详解什么是坐标?
Maven中的坐标是资源的唯一标志使用坐标来定义项目或引入项目中需要的依赖 Maven坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)artifactId:定义当前Maven项目名称(通常是模块名称,例如:order-service、goods-service)version:定义当前项目版本号 依赖范围
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境依赖范围 编译classpath 测试classpath 运行classpath 例子 compileYYYlogbacktest-Y-JunitprovidedYY-servlet-apiruntime-YYJDBC驱动systemYY-存储在本地的jar包import