当前位置: 首页 > article >正文

Maven详解—(详解Maven,包括Maven依赖管理以及声明周期,Maven仓库、idea集成Maven)

文章目录

  • Maven详解
  • 一.初始Maven
    • 1.1 概述
    • 1.2 作用
  • 二.Maven模型
    • 2.1 概述
    • 2.2 构建生命周期/阶段
    • 2.3 项目对象模型
    • 2.4 依赖管理模型
  • 三.Maven仓库
  • 四.Maven安装
    • 4.1 下载
    • 4.2 安装步骤
  • 五.Idea集成Maven

Maven详解

一.初始Maven

1.1 概述

Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(Project Object Model , 简称: POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。

1.2 作用

  • 依赖管理

方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题

  • 统一项目结构

提供标准、统一的项目结构;maven工程,是可以帮我们自动生成统一、标准的项目目录结构:

目录说明: 
- src/main/java: java源代码目录
- src/main/resources:  配置文件信息
- src/test/java: 测试代码
- src/test/resources: 测试配置文件信息

在这里插入图片描述

在这里插入图片描述

  • 项目构建

maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式

在这里插入图片描述

如上图所示我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而Maven提供了一套简单的命令来完成项目构建。

在这里插入图片描述

二.Maven模型

2.1 概述

  • 项目对象模型 (Project Object Model)
  • 依赖管理模型(Dependency)
  • 构建生命周期/阶段(Build lifecycle & phases)

2.2 构建生命周期/阶段

构建生命周期/阶段(Build lifecycle & phases)
在这里插入图片描述

以上图中紫色框起来的部分,就是用来完成标准化构建流程 。当我们需要编译,Maven提供了一个编译插件供我们使用;当我们需要打包,Maven就提供了一个打包插件供我们使用等。

2.3 项目对象模型

在这里插入图片描述

以上图中紫色框起来的部分属于项目对象模型,就是将我们自己的项目抽象成一个对象模型,有自己专属的坐标,

(坐标,就是资源(jar包)的唯一标识,通过坐标可以定位到所需资源(jar包)位置)

在这里插入图片描述

2.4 依赖管理模型

在这里插入图片描述

以上图中紫色框起来的部分属于依赖管理模型,是使用坐标来描述当前项目依赖哪些第三方jar包

在这里插入图片描述

三.Maven仓库

用于存储资源,管理各种jar包

仓库分为:

  • 本地仓库:自己计算机上的一个目录(用来存储jar包)
  • 中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库(私服):一般由公司团队搭建的私有仓库

在这里插入图片描述

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包

  • 如果有,则在项目直接引用

  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库

如果还可以搭建远程仓库(私服),将来jar包的查找顺序则变为: 本地仓库 --> 远程仓库–> 中央仓库

四.Maven安装

4.1 下载

下载地址:https://maven.apache.org/download.cgi

4.2 安装步骤

  1. 解压安装
  2. 配置仓库
  3. 配置Maven环境变量

1、解压 apache-maven-3.6.1-bin.zip(解压即安装)

在这里插入图片描述

解压缩后的目录结构如下:

在这里插入图片描述

  • bin目录 : 存放的是可执行命令。(mvn 命令重点关注)
  • conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)
  • lib目录 :存放Maven依赖的jar包。(Maven也是使用java开发的,所以它也依赖其他的jar包)

2、配置本地仓库

2.1在自己计算机上新一个目录(本地仓库,用来存储jar包)

在这里插入图片描述

2.2、进入到conf目录下修改settings.xml配置文件

1). 使用超级记事本软件,打开settings.xml文件,定位到53行左右

2). 复制标签,粘贴到注释的外面(55行)

3). 复制之前新建的用来存储jar包的路径,替换掉标签体内容

在这里插入图片描述

3、配置阿里云私服

由于中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。

进入到conf目录下修改settings.xml配置文件:

1). 使用超级记事本软件,打开settings.xml文件,定位到160行左右

2). 在标签下为其添加子标签,内容如下:

<mirror>  
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>          
</mirror>

在这里插入图片描述

注意配置的位置,在 … 中间添加配置。如下图所示:

在这里插入图片描述

只可配置一个(另一个要注释!) ,不然两个可能发生冲突,导致jar包无法下载!!!==

4、配置环境变量

1). 在系统变量处新建一个变量MAVEN_HOME

  • MAVEN_HOME环境变量的值,设置为maven的解压安装目录
    在这里插入图片描述

2). 在Path中进行配置

  • PATH环境变量的值,设置为:%MAVEN_HOME%\bin

在这里插入图片描述

3). 管理员身份打开DOS命令提示符进行验证,出现如图所示表示安装成功

mvn -v

在这里插入图片描述

五.Idea集成Maven


http://www.kler.cn/a/377010.html

相关文章:

  • ADO.NET知识总结3---SqlCommand命令对象
  • 如何监控批量写入的性能瓶颈?
  • Apache Traffic存在SQL注入漏洞(CVE-2024-45387)
  • [离线数仓] 总结二、Hive数仓分层开发
  • 《C++11》右值引用深度解析:性能优化的秘密武器
  • uniapp vue2版本如何设置i18n
  • 基于Spring Boot和Vue的电子商城系统功能设计
  • Java面向对象的理解
  • 【JavaSE】java对象的比较
  • Linux:防火墙和selinux对服务的影响
  • Electron+Vue3+TS+sqlite3项目搭建加入sqlite3后无法运行问题
  • 沈阳乐晟睿浩科技有限公司抖音小店短视频时代的电商蓝海
  • ctfshow web入门文件上传总结
  • 【ShuQiHere】使用链表 (Linked List) 和数组 (Array) 实现栈 (Stack) 的深入解析与比较
  • 2. Flink快速上手
  • Web3中的数据主权:区块链如何为用户赋能
  • Java-02
  • VS2017+Qt5.12.9+CMake3.30.2编译VTK 9.2.0
  • 基于Springboot+Vue的养老系统(含源码数据库)
  • 数据结构与算法——第四讲:静态链表及双向链表
  • opencv 图像预处理
  • Unity humanoid 模型头发动画失效问题
  • YOLOv6-4.0部分代码阅读笔记-yolo_lite.py
  • 信源熵的概念
  • Java实现图片转pdf
  • ssm+jsp662教务信息平台的设计与实现