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

相关推荐
罗政2 分钟前
PDF书籍《手写调用链监控APM系统-Java版》第9章 插件与链路的结合:Mysql插件实现
java·mysql·pdf
一根稻草君8 分钟前
利用poi写一个工具类导出逐级合并的单元格的Excel(通用)
java·excel
kirito学长-Java11 分钟前
springboot/ssm网上宠物店系统Java代码编写web宠物用品商城项目
java·spring boot·后端
木头没有瓜25 分钟前
ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList
android·java·okhttp
奋斗的老史25 分钟前
Spring Retry + Redis Watch实现高并发乐观锁
java·redis·spring
high201127 分钟前
【Java 基础】-- ArrayList 和 Linkedlist
java·开发语言
老马啸西风34 分钟前
NLP 中文拼写检测纠正论文 C-LLM Learn to CSC Errors Character by Character
java
Cosmoshhhyyy1 小时前
LeetCode:3083. 字符串及其反转中是否存在同一子字符串(哈希 Java)
java·leetcode·哈希算法
AI人H哥会Java1 小时前
【Spring】基于XML的Spring容器配置——<bean>标签与属性解析
java·开发语言·spring boot·后端·架构