目录
1.maven的概述
Maven是一个Java构建自动化工具,它可以帮助开发人员自动化地构建、测试和部署Java应用程序。Maven使用一个中心的信息文件(pom.xml文件)来描述项目,包含项目的依赖关系、构建过程、部署和测试等信息。Maven的主要功能包括依赖管理、构建管理、测试管理、发行管理和文档生成等。Maven是开源的,由Apache软件基金会进行管理和维护。
2.maven的优势
1.方便jar包的管理
2.使用idea时导入jar更简洁
3.统一jar包的版本,以防后续因为jar包版本冲突报错
4.构建项目统一化
5.项目结构规范
6.可扩展性强
3.安装maven
3.1.需要准备的东西
①:JDK
②:Idea
③:maven安装包
3.2.下载与安装maven
1. 前往Maven – 欢迎来到 Apache Maven下载最新版的Maven程序:
2.将下载的zip文件解压后得到一个文件夹(我们这里用apache-maven-3.6.3.bin做示范)
3.现在我们进到apache-maven-3.6.3目录下面可以看到以下文件
4.配置maven的环境变量
(1).找到系统属性—高级—环境变量
(2).新建一个系统变量
变量名:MAVEN_HOME
变量值:自身存放apache-maven-3.6.3的路径位置
(3).找到系统变量中的Path;
(4).新建一个%MAVEN_HOME%\bin
5.检查是否安装成功
使用管理员启动命令行,输入mvn -v检测是否安装成功
6.配置本地仓库
1.在任意磁盘新建一个文件夹,名为repository,该文件夹作为maven的本地仓库
2.打开apache-maven-3.6.3-bin\apache-maven-3.6.3\conf\settings.xml文件,在如下行插入<localRepository>E:\Maven\repository</localRepository>这串代码,里面的路径是刚刚新建的repository文件夹路径。
<localRepository>E:\Maven\repository</localRepository>
注:localRepository用于配置本地仓库,本地仓库其实是起到一个缓存的作用,它的默认地址是:C:\Users\用户名.m2。当我们从maven中导jar包时,maven会先从我们配置的本地仓库去寻找是否有该jar包,有的话则直接导入,没有的话会从远程仓库下载jar包,并且会下载到我们的本地仓库
7.配置远程仓库
同样也是在我们的settings.xml文件中进行更改,找到mirrors标签,黄色框选的部分是我们默认的远程仓库(不建议大家使用此远程仓库,因为是国外网站,下载jar包的速度会比较慢)。红色框选的部分是我们更改后的远程仓库,我们这里选择的阿里云仓库,除了阿里云仓库之外还有腾讯云maven仓库等一些第三方仓库,我这里提供的是阿里云maven仓库的配置信息
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
注: 千万注意, 只可配置一个(另一个要注释!) 不然两个可能发生冲突 ,导致jar包下不下来 !!!
到这里maven的安装与仓库配置已经完成了,现在可以去idea中配置maven了
4.配置Idea的maven环境
4.1.idea基础配置
去idea做一些全部配置,我们先去关闭所有项目,来到如下界面(在此界面更改配置以后的Maven项目都不需要再去配置了)
4.2.新建Maven项目
配置完之后便可以去新建Maven项目,点击new Project选择Maven项目
5.maven的基本使用
5.1.maven的基本命令
- clean:清理项目,删除生成的目录和文件
- validate:进行项目的基本验证,以减少后续阶段报错的可能性
- compile:编译源代码,生成target文件
- test:进行项目的单元测试
- package:打包项目,生成可部署的构建结果,如jar,war等文件
- install:清理项目并进行安装,通常用于在执行构建之前确保项目的干净状态
- deploy:将项目构建结果发布到远程仓库,以供其他开发人员或项目使用。
5.2.maven的生命周期
1.什么是maven的生命周期?
Maven生命周期是指Maven构建过程中的一系列阶段,它定义了项目构建过程中要执行的任务和顺序
2.maven的生命周期分为几个阶段?
maven的生命周期分为clean,default,site三个阶段
clean(清理阶段):该阶段用于清理项目,删除之前构建生成的输出结果。包括删除target目录和其他生成的文件。
default(默认阶段):该阶段是构建的核心阶段,也是最常用的阶段。它负责编译源代码、运行单元测试、打包生成可发布的产物(如JAR、WAR等)、安装到本地仓库等。
site(站点文档阶段):生成项目文档,Api文档,站点等
6.maven的依赖
6.1.依赖的配置
概念:依赖指当前项目运行所需的jar,一个项目可以设置多个依赖
1.使用坐标导入jar包,格式如下:
<!--设置当前项目所有依赖的所有jar-->
<dependencies>
<!--设置具体的依赖-->
<dependency>
<!--依赖所属群组id-->
<groupId>mysql</groupId>
<!--依赖所属项目id-->
<artifactId>mysql-connector-java</artifactId>
<!--依赖版本号-->
<version>8.0.33</version>
</dependency>
</dependencies>
2.点击刷新按钮,使坐标生效
6.2.依赖的范围
1. 概念:在Maven中,依赖范围用于控制依赖项在项目构建和运行时的可见性和有效性。通过设置适当的依赖范围,可以确保项目正确地引入所需的依赖,并避免冲突和不必要的资源占用。
2.常见的几种依赖范围
- compile
- provided
- runtime
- test
compile:compile范围表示编译范围,也被称为默认范围,默认范围的依赖会在编译、测试和运行时均可使用,所以默认范围的依赖会参与打包,例如:log4j。
provide:provide依赖在编译和测试过程中可用,在运行时不需要,所以不会打包。例如:servlet-api
runtime:runtime依赖在运行和测试时需要,但在编译时不需要。由于runtime依赖在运行时需要,所以会参与打包,例如:jdbc
test:test依赖只会在测试过程中需要,编译和运行时都不需要,所以不会参与打包,例如:junit