maven的安装与配置(超详细)

在Java开发中,配置Maven环境有几个重要的原因:

  1. 依赖管理:Maven 是一个强大的依赖管理工具,它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件(pom.xml)中定义依赖,开发人员可以简单地指定所需的库和版本号,Maven 将负责下载这些依赖并将它们添加到项目的类路径中。

  2. 构建自动化:Maven 提供了一种标准化的项目构建方式。通过定义项目的结构、依赖和构建步骤,Maven 能够自动化地执行项目的构建过程,包括编译、测试、打包等操作。这样可以大大简化项目的构建和发布流程,提高开发效率。

  3. 项目管理:Maven 通过约定优于配置的原则,定义了标准的项目结构和生命周期,使得项目的管理和维护变得更加规范和易于理解。开发人员可以通过 Maven 快速了解项目的结构和依赖,从而更容易地参与到项目开发中。

  4. 插件生态系统:Maven 拥有丰富的插件生态系统,开发人员可以通过各种插件扩展 Maven 的功能,实现例如代码质量检查、静态分析、部署等各种自动化任务。

总的来说,配置Maven环境可以帮助开发人员更加高效地管理项目依赖、自动化项目构建和发布流程,并且规范化项目的结构和管理方式。

一、安装Maven

maven官网下载地址

Binary是可执行版本,已经编译好可以直接使用。

Source是源代码版本,需要自己编译成可执行软件才可使用。
tar.gz和zip两种压缩格式,其实这两个压缩文件里面包含的内容是同样的,只是压缩格式不同

tar.gz格式的文件比zip文件小很多,用于unix操作系统。

zip格式用于Windows操作系统,但在Windows系统使用WinRar工具一样能够解压缩tar.gz格式

下载完成后,解压到某一路径下。本文以D:\apache-maven-3.5.0为例,实际配置环境变量时以自己安装的路径为准。

二、配置环境变量

然后win+R运行cmd,输入mvn -version,如图所示则配置成功

三、配置本地仓库

1.在D:\maven_dep路径下新建repository文件夹(可自定义文件路径,除C盘符),用作maven的本地库。

2.在路径D:\apache-maven-3.5.0\conf下找到settings.xml文件

3.找到节点localRepository,在注释外添加

localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。

当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果没有则从远程仓库中获取包,并在本地库中保存。

此外,我们在maven项目中运行mvn install,项目将会自动打包并安装到本地仓库中。

四、配置镜像

  1. 在settings.xml配置文件中找到mirrors节点
  2. 添加如下配置(注意要添加在<mirrors>和</mirrors>两个标签之间,其它配置同理)
XML 复制代码
<!-- 阿里云仓库 -->
<mirror>
	<id>alimaven</id>
	<mirrorOf>central</mirrorOf>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

因为国外的服务器下载jar包很慢所以我们改为阿里云服务器
虽然mirrors可以配置多个子节点,但是它只会使用其中的一个节点,即默认情况下配置多个mirror的情况下,只有第一个生效,只有当前一个mirror无法连接的时候,才会去找后一个;而我们想要的效果是:当a.jar在第一个mirror中不存在的时候,maven会去第二个mirror中查询下载,但是maven不会这样做!

相关推荐
宫瑾4 分钟前
【C语言】嵌入式C加强学习
java·c语言·学习
结衣结衣.17 分钟前
protobuf介绍与快速上手
java·服务器·html
时艰.42 分钟前
JVM — Java 类加载机制
java·开发语言·jvm
哪里不会点哪里.1 小时前
Spring MVC 核心原理解析:从请求到响应到底发生了什么?
java·spring·mvc
WKP94181 小时前
线程并行控制CompletableFuture
java·开发语言
九皇叔叔1 小时前
application.yml 文件无 Spring 图标 + 无自动提示
java·spring boot·spring
马猴烧酒.2 小时前
JAVA后端用户登录与鉴权详解
java·数据库·sql
乐之者v2 小时前
软件开发常规流程的版本缩写
java
DN20202 小时前
靠谱的AI销售机器人哪家好
java·人工智能·机器人
黎雁·泠崖2 小时前
Java继承细节:子类继承父类成员的底层逻辑
java·开发语言