maven详细介绍

Maven是一个强大的Java项目管理工具,负责依赖管理、一键构建,包括简化依赖、整合CI/CD、项目升级和功能扩展。虽然学习曲线陡峭,但其优点明显,如简化项目结构、易于协作。本文详细介绍了Maven的安装、配置、仓库管理及关键概念。
摘要由CSDN通过智能技术生成

Maven定义
Maven 是Apache 的一个开源项目,是Java开发环境中用于管理和构建项目,以及维护依赖关系的强大软件项目管理工具。

Maven作用
1.依赖管理

Maven 一个核心的特性就是依赖管理,依赖管理是项目管理中非常重要的一环。

当我们处理多模块的项目,比如:包含成百上千个模块或者子项目,随着这个依赖的树的延伸和扩大,模块间的依赖关系就变得非常复杂,管理也变得很困难。

针对此种情形,Maven提供了一套完整的方法,让使用者可以轻松的管理项目的依赖。

2.一键构建

指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个 过程称为构建,使用 maven 一个命令可以轻松完成整个工作。

Maven优缺点
1.优点

1.简化了项目依赖管理;
2.易于上手,对于新手来说了解几个常用命令即可满足日常工作;
3.便于与持续集成工具(jenkins)整合;
4.便于项目升级,无论是项目本身还是项目使用的依赖;
5.maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等。
2.缺点

1.maven是一个庞大的构建系统,学习难度大;
2.maven采用约定优于配置的策略,虽然上手容易,但是一旦出了问题,难于调试。
 

Maven下载安装
1.进入Maven官网下载

地址:https://maven.apache.org/index.html

2.下载具体的版本

点击上图的Download下载具体的版本,如下图所示:

Binary开头的版本:指的是不需要编译成可执行文件。

Source开头的版本:指的是需要编译成可执行文件。

tar.gz后缀结尾:是Linux的安装包,.zip后缀结尾是windows版本。

比如:选择apache-maven-3.8.6-bin.zip这个就可以,下载完成后解压一下,如下图所示:

主要包含4个重要的目录:

bin: 该目录包含了 mvn 运行的脚本,这些脚本用来配置 java 命令;

boot:该目录只包含一个文件,该文件是一个类加载器框架,Maven 使用该框架加载自己的类库;

conf:该目录包含了一个非常重要的文件 settings.xml,用于全局定义 Maven 的行为;

Lib:该目录包含了所有 Maven 运行时需要的 Java 类库;

Maven环境配置
1.打开系统设置

首先右击此电脑,属性,打开高级系统设置。

2.点击环境变量

3.新建系统变量

在系统变量这一栏,选择新建,如下图所示:

增加MAVEN_HOME,后面是你解压的Maven目录,如下图所示:

 

之后找系统变量中的Path,点击编辑,如下图所示:

输入%MAVEN_HOME%\bin,再点击确定,如下图所示:

命令提示符中使用mvn -version来判断是否配置完成。

如果出现上图的Maven版本号,就说明你Maven安装配置成功了。

Maven提供了两种类型的仓库:本地仓库(Local Repository)和远程仓库(Remote Repository)。

本地仓库(Local Repository):
每个开发者在本地计算机上都会有一个本地仓库,它位于用户目录下的.m2文件夹(对于Windows系统来说,默认路径是C:\Users\用户名\.m2)。当我们第一次运行Maven时,它会自动在本地仓库中创建一个.m2文件夹,并将下载的依赖库存储在其中。

本地仓库是Maven构建系统寻找依赖库的默认位置。当项目需要某个依赖库时,Maven会首先检查本地仓库是否已经存在该库的版本。如果存在,则直接从本地仓库获取;如果不存在或者需要更新,Maven会从远程仓库下载该依赖库并保存到本地仓库中。

远程仓库(Remote Repository):
远程仓库存储在互联网上的服务器上,供开发人员共享和访问依赖库。Maven构建系统可以从远程仓库下载所需的依赖库,并将其存储到本地仓库中。

Maven默认配置了一个中央仓库(Central Repository)作为默认的远程仓库,它由Maven社区维护,并存储了大量常用的开源Java依赖库。当我们在项目的POM文件中指定依赖库时,Maven会首先从中央仓库查找该依赖库。除了中央仓库,还可以配置其他自定义的远程仓库,例如自己搭建的私有仓库或者第三方的远程仓库。

在POM文件中,通过<repositories>元素可以指定所需的远程仓库的URL和其他相关信息。Maven会根据这些配置信息来搜索并下载所需的依赖库。

总结来说,Maven仓库是用于存储和管理依赖库的地方。本地仓库存储在本地计算机上,用于缓存和管理已经下载的依赖库;而远程仓库存储在互联网上的服务器上,供开发人员共享和访问依赖库。Maven构建系统会根据配置,优先从本地仓库获取依赖库,如果不存在或需要更新,则从远程仓库下载依赖库并保存到本地仓库中。

Maven的一些重要概念和功能:

项目对象模型(Project Object Model,POM):每个Maven项目都包含一个名为pom.xml的配置文件,其中定义了项目的基本信息、依赖关系、插件配置等。POM文件是Maven的核心,通过读取和解析POM文件,Maven可以了解项目的结构和构建要求。

依赖管理:Maven能够自动下载项目所需的依赖库,并管理这些库的版本冲突。通过在POM文件中指定依赖项的坐标信息(groupId、artifactId、version),Maven可以从中央仓库或私有仓库中获取相应的依赖库。

生命周期和插件机制:Maven定义了一套生命周期(Lifecycle),包括clean、compile、test、package、install、deploy等阶段。每个生命周期阶段都与一个或多个插件目标(Goal)相关联,通过执行插件目标,可以完成相应的构建任务。Maven支持丰富的插件机制,可以通过插件扩展来满足各种需求。

构建过程:Maven的构建过程主要包括以下几个阶段:

清理(clean):清理上次构建生成的文件。
编译(compile):将Java源代码编译为字节码文件。
测试(test):运行单元测试代码。
打包(package):将编译后的代码打包为可执行的JAR、WAR或者其他格式。
安装(install):将打包好的库安装到本地仓库,以供其他项目使用。
部署(deploy):将库部署到远程仓库,以供其他开发人员或团队使用。
自定义配置:Maven提供了丰富的配置选项,可以通过在POM文件中指定插件、配置构建参数等方式进行自定义。同时,Maven还支持多模块项目的管理,可以将一个大型项目拆分为多个子模块,实现模块化的开发和构建。

总之,Maven通过规范化和自动化的方式,简化了Java项目的构建和管理过程,提高了开发效率,并促进了团队协作。它是Java开发中常用的构建工具之一,被广泛应用于各种类型的Java项目。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值