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

相关推荐
极创信息1 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate
汉字萌萌哒2 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
喜欢的名字被抢了2 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
数据知道3 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
Rain的Java大神之路3 小时前
MQ重复消费问题怎么解决
java·经验分享·后端·面试·架构·rabbitmq·rocketmq
無限進步D4 小时前
Java 函数式编程(Lambda)
java·开发语言
rannn_1114 小时前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发
lv__pf4 小时前
Spring配置类解析 【TL spring 11】
java·前端·spring
zhougl9964 小时前
Java Spring Boot 爬虫技术全面介绍
java·spring boot·爬虫