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.xdnf.cn/news/4684.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

大腾智能荣获盐田区黄金珠宝产业“产业赋能数字化优选能力伙伴”荣誉

11月2日&#xff0c;盐田区黄金珠宝产业数智化转型促进中心&#xff08;简称“促进中心”&#xff09;揭牌仪式圆满举办。盐田区委书记李忠&#xff0c;市工业和信息化局、市市场监督管理局、华为技术有限公司等相关单位、企业负责人共同见证促进中心揭牌启动。 大腾智能也出席…

DevEco在设备上运行hap报错: Error message: The caller is not a system application

这是因为hap的运行权限不够,需增加权限 找到api目录 tools->SDK manager 查看项目使用的api版本 在文件目录下找到api 9,修改如下框中文件内容

2024-11-6----Android 11(全志713m)----- 关于添加 Selinux 权限

需求 节点&#xff1a; /sys/devices/platform/motor0/motor_ctrl上层 APP 使用 JNI 需要对该节点进行 echo 的操作&#xff0c;操作失败。 添加前的验证工作 adb 进去验证下&#xff0c;如下图所示&#xff1a; 发现权限不够。su 以后再操作是OK的&#xff0c;如下图&…

【蓝队技能】【溯源反制】反打红队-CS反打其他

蓝队技能 CS反打&其他 蓝队技能总结前言一、CS批量上线二、利用漏洞&#xff08;CVE-2022-39197&#xff09;三、CS的Server端破解四、旁站反制五、蜜罐反制六、邮件钓鱼反制七、其他反制技术 总结 前言 本文深入探讨了溯源反制中针对远程控制工具CobaltStrike的多种策略与…

linux下一个应用是如何被执行的

Linux系统下&#xff0c;一个应用从启动到执行main函数经历了什么&#xff1a; 加载器&#xff08;loader&#xff09;&#xff1a;用户在终端启动一个程序时候&#xff0c;shell调用execve&#xff0c;执行程序的启动。内核态操作&#xff1a;execve做了以下几个事情&#xf…

cv.dnn.blobFromImage参数详解

例如&#xff1a; image cv.imread(imgs/img.png) blob cv.dnn.blobFromImage(image, scalefactor1.0, size(224, 224), mean(0, 0, 0), swapRBTrue, cropFalse) print("原始图像形状:", image.shape) print("Blob数据形状:", blob.shape)1. image 含义…

vscode 使用prettier格式化代码 在项目中增加.prettierrc文件,代码结尾不加分号,缩进使用两个空格

.prettierrc: {"tabWidth": 2,"useTabs": true,"semi": false,"singleQuote": false,"printWidth": 100,"trailingComma": "none" }

基于Spring Boot和Vue的电子商城系统功能设计

基于Spring Boot和Vue的电子商城系统功能设计 该系统是一个基于Spring Boot和Vue框架的电子商城平台&#xff0c;包含前台商城和后台管理系统。系统功能设计包括用户购物体验和管理员管理功能&#xff0c;支持商品的分类展示、收藏、购物车和订单管理等模块。以下是系统功能的简…

SpringBoot健身房管理系统:用户体验至上

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

ride安装后桌面没有快捷方式/打不开闪退?

我们在使用ride之前需要先使用pip命令下载安装python的一些必须库&#xff1a; pip install robotframework //或者使用豆瓣源下载&#xff1a; pip install i https://pypi.douban.com/simple robotframework //以上二选一&#xff0c;之后再下载ride&#xff1a; pip insta…

Hive操作库、操作表及数据仓库的简单介绍

数据仓库和数据库 数据库和数仓区别 数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别 操作型处理(数据库)&#xff0c;叫联机事务处理OLTP&#xff08;On-Line Transaction Processing&#xff09;&#xff0c;也可以称面向用户交易的处理系统&#xff0c;它是针对具体业务…

【C++】继承和多态常见的面试问题

文章目录 继承笔试面试题1. 什么是菱形继承&#xff1f;菱形继承的问题是什么&#xff1f;2. 什么是菱形虚拟继承&#xff1f;如何解决数据冗余和二义性&#xff1f;3. 继承和组合的区别&#xff1f;什么时候用继承&#xff1f;什么时候用组合&#xff1f; 选择题 多态概念考察…

Unity 6 来袭

这里写自定义目录标题 1.提升渲染性能1.1 降低CPU开销 Lower CPU overhead1.2.减少内存带宽1.3.高档低分辨率帧2.多人游戏创作3.扩大多平台覆盖范围3.1.增进Android平台开发4.使用Runtime AI解锁各种可能性4.1.Unity Muse4.2.Unity Sentis5.实现更具吸引力的视觉效果5.1.自适应…

高职院校大数据专业群实训平台建设方案

一、高职大数据专业群实训平台建设的重要性 高职教育的核心在于培养学生的实际应用能力&#xff0c;因此实践教学在整个教育体系中占据极其重要的地位。构建一个综合性的大数据专业群实训平台&#xff0c;旨在支持大数据项目开发、专业课程实训及模拟真实工作场景&#xff0c;…

EPS出现时间错误,对象无法选中?

问题描述 eps在使用过程中&#xff0c;选择等高线突然弹出“时间错误&#xff0c;对象无法选中”的问题。 解决办法 关闭eps&#xff0c;重新启动并打开文件&#xff0c;即可解决。

深⼊理解指针(1)

⽬录&#xff1a; 1. 内存和地址 2. 指针变量和地址 3. 指针变量类型的意义 4. 指针运算 一 内存和地址 指针定义的引入 假如你的一个去旅游&#xff0c;然后进入酒店夜宿&#xff0c;而这时候你要去找他&#xff0c;如果你的朋友没有告诉他的房间&#xff0c;这时候你就…

qt QTableWidgetItem详解

1、概述 QTableWidgetItem 是 Qt 框架中的一个类&#xff0c;专门用于在 QTableWidget&#xff08;一个基于项的表格视图&#xff09;中表示单个单元格的内容。QTableWidget 继承自 QAbstractItemView&#xff0c;而 QTableWidgetItem 则作为表格中的一个单元格项&#xff0c;…

CUDA下载和安装

CUDA下载和安装 前言下载安装后续添加参考链接 前言 由于我需要运行的代码与我当前的CUDA版本不兼容,所以我现在需要进行CUDA的更新,下载一个低版本的CUDA以匹配我的Pytorch 下载 CUDA下载地址:CUDA下载链接 选择适合自己的版本 由于我是要运行一个开源项目,我选择对应的CU…

手把手教你Windows系统服务提权(含提权实验+环境配置教程),网络安全零基础入门到精通教程建议收藏!

文章目录 服务配置权限脆弱环境准备提权实验服务注册表权限脆弱环境准备提权实验 服务路径权限脆弱环境准备提权实验 未引用的服务路径环境准备提权实验 针对不安全服务提权的防御措施 &#x1f449;1.成长路线图&学习规划&#x1f448;&#x1f449;2.网安入门到进阶视频教…

宠物空气净化器测评!希喂/米家/有哈宠物空气净化器谁性价比高

宠物空气净化器测评&#xff01;如何清理猫毛应该是每个养猫人都在面对的难题。那些细小的浮毛真的不能不管&#xff0c;它们飘落在家里的每一个角落&#xff0c;不仅极难清理&#xff0c;还弄得我鼻子发痒、频繁咳嗽。为了解决这些浮毛&#xff0c;我家一直在用宠物空气净化器…