Maven环境搭建及Maven部分目录分析

一、安装Maven

Maven 本身就是⼀套由 Java 开发的软件,所以 Maven 的运⾏需要依赖 JDK 环境。在安装 Maven 之前请 确认JDK 是否配置正确(主要依赖 JAVA_HOME 环境变量)。如果没有正确安装和配置 JDK ,则运⾏ Maven 时 会出现以下错误信息:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
下载Maven 地址:http://maven.apache.org/download.html
检查JDK的安装情况
echo %JAVA_HOME%
java -version

对下载文件进行解压缩

设置系统环境变量
打开环境变量配置⾯板,新建变量如下:
变量名: M2_HOME
变量值: {Maven 的安装路径 } ,例如 C:\environment\apache-maven-3.6.3

接下来找到名为Path的系统环境变量,双击进⼊编辑,添加⼀条变量值:

配置完毕之后将所有⾯板点击******确定******关闭即可
测试安装结果
打开 CMD 命令⾏窗⼝,输⼊以下命令:
mvn -version

安装本地仓库
注意,本操作⾮必要。进⾏这项操作只是为了让⼤家操作项⽬更⽅便。
⾸先⼤致了解⼀下 Maven 管理依赖的⼤致流程和原理:
当需要使⽤某个依赖时,我们直接在配置⽂件中定义它的名称,⽆需⾃⼰到⽹上找资源
Maven 扫描到配置⽂件中的依赖声明,⾃动到 仓库 中查找
⾸先会到 本地仓库 中进⾏查找,如果存在则直接引⼊使⽤
本地仓库即⾃⼰磁盘中某个⽬录,会保存所有从远程仓库下载的依赖
如果本地仓库不存在,则会到 远程仓库 中进⾏查找
远程仓库指的是架设在某个远程服务器上的仓库,需要通过⽹络访问
如果在远程仓库中找到了该依赖,则会⾃动下载下来,安装到本地仓库中,然后再引⼊到项⽬中
如果远程仓库中也没有该依赖,则会报错
通过上述流程我们可以得知,当项⽬中需要使⽤某个依赖的时候,它只会直接从本地仓库进⾏查找。本地仓库中只要存在⽬标依赖,就可以引⼊进来使⽤。⾄于这个依赖是从何处得来的,并不重要。可以是从远程仓库下载的,也可以是从别⼈的电脑上复制得到的已有仓库内容。
我们已经把这个项⽬所需要⽤到的依赖完整下载好并打包,⼤家只要将解压出来的⽬录配置为⾃⼰的本地仓库,项 ⽬中即可直接使⽤,⽆需联⽹下载,这样可以节省⼤量的时间。
找到资源包中的 maven_repo.zip ⽂件,将其解压⾄ environment ⽬录。解压出来的这个路径,就是 本地仓库路 。 接下来,找到Maven 安装⽬录下的 conf/settings.xml⽂件,使⽤记事本打开该⽂件。改为刚才解压出来的 本地仓库路径 。修改完毕后保存并退出即可。

二、Maven目录介绍

bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )

boot目录 maven运行需要类加载器

conf目录 settings.xml 整个maven工具核心配置文件

lib目录 maven运行依赖jar包

Maven安装目录分析

bin:含有mvn运行的脚本

boot:含有plexus-classworlds类加载器框架

conf:含有settings.xml配置文件

lib:含有Maven运行时所需要的java类库 LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

遵从Maven约定

src/main/java ------ 存放项目的.java文件

src/main/resources ------ 存放项目资源文件,如spring, hibernate配置文件

src/test/java ------ 存放所有测试.java文件,如JUnit测试类

src/test/resources ------ 测试资源文件 target ------ 项目输出位置

pom.xml

相关推荐
weixin_7275356216 分钟前
MinIO大文件上传深度拆解:从原理到生产落地的完整指南
java·中间件
摇滚侠1 小时前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记
芝士熊爱编程1 小时前
创建型模式-单例模式
java·单例模式·设计模式
大模型码小白1 小时前
Spring AI 框架实战:Java 后端集成大模型的架构设计与工程落地
java·人工智能·python·spring
weixin_BYSJ19872 小时前
「课设设计」springboot校园超市助购系统26449 (附源码)
java·javascript·spring boot·python·django·flask·php
栋***t2 小时前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
CHANG_THE_WORLD2 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
xexpertS2 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
zy happy3 小时前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第192题】【08_Kafka篇】第8题:死信队列是什么?延时队列是什么?
java·kafka·消息队列·死信队列·延时队列