maven详细介绍

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项目。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Maven是一个Java项目管理工具,它提供了一种标准化的方式来构建、打包和发布Java项目。Maven可以自动下载相关的依赖项,并可以自动构建、测试和打包项目,并且可以方便地进行部署和发布。 以下是Maven的一些特点: 1. 依赖管理:Maven可以自动下载并管理项目的依赖项,使得项目构建更加简单和可靠。Maven使用POM(Project Object Model)文件来描述项目的依赖关系,开发者只需要在POM文件中指定依赖项的坐标,Maven就可以自动下载并安装这些依赖项。 2. 标准化:Maven提供了一套标准化的项目结构、构建过程和命名规则,使得开发者可以轻松地创建和管理Java项目。Maven的标准化还包括了一些插件和工具,例如JUnit测试、JavaDoc生成等。 3. 插件化:Maven的构建过程是通过插件实现的,开发者可以通过配置不同的插件来实现不同的构建过程。Maven的插件机制使得开发者可以轻松地扩展和定制构建过程。 4. 生命周期:Maven定义了一套标准的构建生命周期,开发者可以通过配置不同的构建阶段来实现不同的构建目标。Maven的生命周期包括了编译、测试、打包、安装、部署等阶段。 5. 中央仓库:Maven提供了一个中央仓库,开发者可以将自己开发的项目或者组件发布到中央仓库,其他开发者可以通过Maven来自动下载和使用这些组件。中央仓库也是一个开源社区,任何人都可以在其中发布和共享自己的Java项目。 总之,Maven是一个强大的Java项目管理工具,它通过依赖管理、标准化、插件化、生命周期和中央仓库等特点,使得Java开发更加简单、可靠和可维护。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值