Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
1.提供了一套标准化的项目结构
Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
2.提供了一套标准化的构建流程(编译,测试,打包,发布……)
Maven提供了一套简单的命令来完成项目构建
3.提供了一套依赖管理机制
依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)
Maven简介
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
官网:http://maven.apache.org/
项目对象模型 (Project Object Model)
依赖管理模型(Dependency)
插件(Plugin)
仓库
仓库分类:
本地仓库:自己计算机上的一个目录
中央仓库:由Maven团队维护的全球唯一的仓库 地址:https://repo1.maven.org/maven2/
远程仓库(私服):一般由公司团队搭建的私有仓库
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包: 如果有,则在项目直接引用; 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
还可以搭建远程仓库,将来jar包的查找顺序则变为: 本地仓库 -> 远程仓库 -> 中央仓库
Maven 安装配置
1.解压 apache-maven-3.6.1.rar 既安装完成
2.配置环境变量 MAVEN_HOME 为安装路径的bin目录
3.配置本地仓库:修改 conf/settings.xml 中的 <localRepository> 为一个指定目录
如:<localRepository>D:\down loads\apache-maven-3.8.6\mvn_resp</localRepository>
4.配置阿里云私服:修改 conf/settings.xml 中的 <mirrors>标签,为其添加如下子标签:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
Maven基本使用
Maven 常用命令
compile :编译
clean:清理
test:测试
package:打包
install:安装
Maven生命周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
Maven 对项目构建的生命周期划分为3套
clean:清理工作
default:核心工作,例如编译,测试,打包,安装等
site:产生报告,发布站点等
IDEA配置 Maven
IDEA配置maven环境:
选择 IDEA中 File --> Settings,搜索 maven,设置 IDEA 使用本地安装的 Maven路径,并修改配置文件路径
Maven 坐标详解
什么是坐标?
Maven 中的坐标是资源的唯一标识
使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)
artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
version:定义当前项目版本号
IDEA 创建 Maven 项目
创建模块,选择Maven,点击Next
填写模块名称,坐标信息,点击finish,创建完成
编写 HelloWorld,并运行
需要有标准目录: (可以自行补全)
src/main/java
src/main/resources
src/test/java
src/test/resources
IDEA 导入 Maven 项目
选择右侧Maven面板,点击 + 号
选中对应项目的pom.xml文件,双击即可
如果没有Maven面板,选择 View -> Appearance -> Tool Window Bars
maven插件 mavenhelper 可以直接在项目右键运行maven命令 和debug 项目
在IDEA settings 的plugin 搜索然后install就可以了
依赖管理
在pom文件中 添加依赖
添加完记得点刷新按钮,如果本地不存在,那么点刷新会自动下载该jar包
在 pom.xml 中编写 <dependencies> 标签 在 <dependencies> 标签中 使用 <dependency> 引入坐标
定义坐标的 groupId,artifactId,version 点击刷新按钮,使坐标生效
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.14</version> </dependency> </dependencies>
依赖范围