手把手教你maven的安装与配置(windows)

news2025/2/1 14:56:00


在这里插入图片描述

提起Maven,相信大家并不陌生,对于一些java开发者,可能除了JDK,第二个要学的内容就是Maven了。今天,我们就踏上Maven的学习之路,当然第一篇,依然还是手把手系列,从安装与配置开始。

📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
📗本文收录于 Maven专栏 ,有需要者,可直接订阅专栏实时获取更新
📘高质量专栏 云原生、RabbitMQ、Spring全家桶、 GIT 等仍在更新,欢迎指导
📙Zookeeper Redis kafka docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待


一、Maven 是什么

Maven 是一个基于项目对象模型 (POM) 定义项目的构建工具。它可以帮助开发人员管理项目的依赖关系、构建、文档描述信息管理等。通过 Maven,开发人员可以很方便地构建、打包、发布和部署 Java 应用程序。Maven 能够自动从互联网上下载依赖库,并自动部署到本地仓库中。使用 Maven,开发人员无需手动去配置、管理项目的依赖关系,只需要在 POM 文件中声明依赖关系,Maven 就能自动帮助我们管理依赖

二、Maven 的安装

1. 下载

访问 Maven 的官网:https://maven.apache.org/download.cgi,进入下载页面。注意,下载的为二进制压缩文档。

需要注意的是。如果你使用了IDEA,并且想在IDEA中使用Maven,那么推荐根据IDEA的版本来决定使用的Maven版本,其对应关系如下

  • IDEA 2022 兼容maven 3.8.1及之前的所用版本
  • IDEA 2021 兼容maven 3.8.1及之前的所用版本
  • IDEA 2020 兼容Maven 3.6.3及之前所有版本
  • IDEA 2018 兼容Maven3.6.1及之前所有版本

当然,官网页面打不开的同学,笔者这边也给大家准备了3.9.4版本的包,点击链接即可: 3.9.4版本 。早先3.6.3版本的包也有:3.6.3版本

在这里插入图片描述

2. 环境配置

在我们将上述压缩包解压后,形成如下的目录

在这里插入图片描述
但是因为这次是压缩包解压,而没有贴心的安装程序,所以我们只能手动去设置一下环境变量了,环境变量的设置也是老套路了,右键”计算机“ 进入属性

在这里插入图片描述
按步骤找到环境变量设置选项,点进去
在这里插入图片描述

把Maven的bin路径设定到环境变量 Path

在这里插入图片描述

然后以mvn --version来查看,能正确输出版本号,就代表我们成功安装了Maven

在这里插入图片描述


三、Maven 的配置文件

Maven安装好后自带了一个配置文件 setting.xml ,用于配置Maven的全局选项、仓库等信息。而且,Maven的配置分为全局配置用户配置,全局配置就是Maven安装路径下的conf/setting.xml,用户配置是指在用户主目录下的.m2 文件夹内。所以需要注意,用户配置会覆盖全局配置,因此在进行用户配置时,要特别注意不要覆盖全局配置的设置

在这里插入图片描述
我们来分析下,这份配置文件的结构

1. 本地仓库

定义本地仓库的位置,Maven会将下载的依赖项文件保存在该位置。

<settings>
    <localRepository>C:\Users\username\.m2\repository</localRepository>
</settings>

2. 远程仓库

定义用于查找依赖项的远程仓库,远程仓库可以是中央仓库私有仓库镜像仓库,这里我们做一点简单的解释

  • 中央仓库
    中央仓库是由 Maven 社区提供的仓库,我们可以说是官方仓库。包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息。中央仓库不需要进行额外的配置
  • 私有仓库
    开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件,一般由公司内部搭建。
  • 镜像仓库
    镜像仓库是指在Maven中心仓库之外,由第三方机构或个人自行搭建的仓库,一般情况是完全复制了中心仓库中的内容,并提供了更快的下载速度和更好的稳定性。
<settings>
    <mirrors>
  		<!-- 指定镜像仓库 -->
        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
    </mirrors>
    
    <!-- servers标签是在 Maven 中用来配置身份验证信息供 Maven 访问远程仓库时使用的 -->
    <servers>
    	<server>
      		<id>my-repo</id>
      		<username>your-username</username>
      		<password>your-password</password>
    	</server>
  	</servers>
  	
  	<!-- profiles 标签用于定义针对不同环境,不同的环境可以使用不同的依赖库、资源文件等 -->
  	<profiles>
    	<profile>
      		<id>my-private-repo</id>
		    <repositories>
		    	<!-- 私有仓库设置 -->
        		<repository>
          			<id>my-repo</id>
          			<url>http://my-repo-url</url>.
          			<!-- 配置Maven是否应从该存储库中查找releases版本 -->
          			<releases><enabled>true</enabled></releases>
          			<!-- 配置Maven是否应从该存储库中查找快照版本 -->
          			<snapshots><enabled>false</enabled></snapshots>
		        </repository>
      		</repositories>
      		<pluginRepositories>
        		<pluginRepository>
          			<id>my-repo</id>
          			<url>http://my-repo-url</url>
        		</pluginRepository>
      		</pluginRepositories>
    	</profile>
  </profiles>
  	
  <activeProfiles>
  		<!-- 当有多个profile时,可以使用此标签来指定使用哪个profile -->
    	<activeProfile>my-private-repo</activeProfile>
  </activeProfiles>
</settings>

这里有几点需要说明下:

  1. 私有仓库建议配置在<profile>内,这样可以将其作为一个特定环境的配置,并且在使用时可以更加方便地调用。如果您需要在全局使用私有仓库,也可以将其配置在<mirrors>标签内。
  2. 如果同时配置中央仓库、镜像仓库和私有仓库,它们使用的优先级从高到底依次为私有仓库 - 镜像仓库 - 中央仓库,也就是说私有仓库是最优先的选择
  3. <mirrorOf>标签用于指定要镜像的仓库ID,设置为 *,表示所有仓库都使用镜像,设置为central代表只有中央仓库使用该镜像。

3. 代理服务器

定义用于访问远程仓库的代理服务器,包括HTTP代理和HTTPS代理等。

<settings>
    <proxies>
        <proxy>
            <id>proxy1</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>proxy.example.com</host>
            <port>8080</port>
            <username>user</username>
            <password>password</password>
            <nonProxyHosts>*.example.com</nonProxyHosts>
        </proxy>
    </proxies>
</settings>

4. 服务器认证

定义访问需要认证的远程仓库的用户名和密码。

<settings>
    <servers>
        <server>
            <id>server1</id>
            <username>username</username>
            <password>password</password>
        </server>
    </servers>
</settings>

5. 其他选项

除了上面的内容,还可以配置其他选项,如超时时间、调试级别等。

<settings>
    <configuration>
        <timeout>30000</timeout>
        <logLevel>debug</logLevel>
    </configuration>
</settings>

默认情况下,Maven的logLevel是INFO级别。通过指定logLevel,可以控制Maven在执行构建时输出日志的详细程度,从而方便调试和排查错误

6. 配置示例

对于大部分同学来说,所用到的包基本都在中央仓库中,因此只需要针对中央仓库设置一个镜像即可,一般常用的就是阿里云镜像,那么整体的文件配置就如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <pluginGroups>
  </pluginGroups>
  <proxies>
  </proxies>
  <servers>
  </servers>
 <!--自定义指定jar包存放的位置-->
 <localRepository>E:\mavenRepo\repository</localRepository>
 <!--配置具体的仓库的下载镜像-->
 <mirrors>
    <mirror>
	 	 <!--此镜像的唯一标识符,用来区分不同的mirror元素-->
      	 <id>alimaven</id>
	  	 <!--对哪种仓库进行镜像,简单说就是替代哪个仓库-->
	  	 <mirrorOf>central</mirrorOf> 
	  	 <!--镜像名称-->
      	 <name>aliyun maven</name>
	  	 <!--镜像URL-->
         <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
 </mirrors>
  <profiles>
  </profiles>
</settings>

四、对接IDEA

当我们设置完Maven的相关配置,如果是使用Idea的同学,还需要在Idea中进行相关配置。我们设定完以后,就可以在IDEA中进行Maven的相关操作。

在这里插入图片描述

注意,此处我们勾选了 Override ,这将使得此处的Maven设置拥有最高优先级,一般保持这个和外层配置一致即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999806.html

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

相关文章

C#获取屏幕的分辨率、工作区分辨率

运行结果如下; 由于屏幕的任务栏在侧面所以屏幕宽度变化。 代码如下 private void Form1_Load(object sender, EventArgs e){int SH Screen.PrimaryScreen.Bounds.Height; //1080int SW Screen.PrimaryScreen.Bounds.Width; //1920System.Drawing.Rectangle rec Screen.Get…

从零开始搭建Apache服务器并使用内网穿透技术实现公网访问

Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…

【hive】—原有分区表新增加列(alter table xxx add columns (xxx string) cascade;)

项目场景&#xff1a; 需求&#xff1a;需要在之前上线的分区报表中新增加一列。 实现方案&#xff1a; 1、创建分区测试表并插入测试数据 drop table test_1; create table test_1 (id string, score int, name string ) partitioned by (class string) row format delimit…

OSPF实验:配置与检测全网互通

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置 IP 地址2. 按照图示分区域配置 OSPF &#xff0c;实现全网互通3. 检查是否全网互通 摘要&#xff1a; 本篇文章介绍了一个 OSPF&#xff08;Open Shortest Path First&#xff09;实验&#xff0c;旨在…

瀑布流布局2

要实现瀑布流布局中让图片先排满第一行再排第二行&#xff0c;你可以使用 CSS 的多列布局&#xff08;CSS multi-column layout&#xff09;来控制。目前你的布局使用了 column-count 和 column-gap 来定义列数和列之间的间隙&#xff0c;但这会导致在不同列之间平均分布元素。…

【c#】log4net用法

log4net用法 1、新建配置文件 在项目的bin文件下新建config文件&#xff1a;\logUtil\bin\Debug\net6.0\log4net.config文件&#xff0c; 2、config配置文件参考&#xff1a; 配置一&#xff1a; <?xml version"1.0"?> <configuration><config…

Apache服务器的下载与安装

Apache官方下载地址是&#xff1a;https://httpd.apache.org/&#xff0c;点击右上角“Download” 点击“Files for Micsoft Windows” 点击“ApacheHaus” 根据系统选择对应的版本&#xff08;我选择 64 位的&#xff09;&#xff0c;点击图标开始下载 解压到自己的目录下…

【多线程】阻塞队列 详解

阻塞队列 详解 一. 什么是阻塞队列二. 生产者消费者模型三. 标准库中的阻塞队列四. 阻塞队列实现 一. 什么是阻塞队列 阻塞队列是一种特殊的队列. 也遵守 “先进先出” 的原则. 阻塞队列是一种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续入队列就会阻塞, 直…

freeswitch 播放远程文件的流程

freeswitch中既可以播放本地文件&#xff0c;也可以播放远程文件&#xff0c;如 loop_playback(1 https://xxxxxx/filename.wav) 即文件名以https:// 或者 http:// 开头。 流程图如下&#xff1a; 如何根据文件找对应的open回调函数呢&#xff1a; 用命令&#xff1a;show…

开利网络为祥兴集团营销团队提供驻场服务,共建数字化活力世界

近日&#xff0c;开利网络到访广西祥兴实业集团&#xff0c;参与全员营销会议&#xff0c;就集团目前如何推动业务增速、如何推动集团“活力世界”平台落地运营、共建营销激励机制进行落地沟通。 ​开利网络认为&#xff0c;集团目前存在营销目标分散、营销机制不清和营销产品混…

Apinto 网关: Go语言实现 HTTP 转 gRPC

gRPC 是由 Google 开发的一个高性能、通用的开源RPC框架&#xff0c;主要面向移动应用开发且基于 HTTP/2 协议标准而设计&#xff0c;同时支持大多数流行的编程语言。 gRPC 基于 HTTP/2 协议传输&#xff0c; HTTP/2 相比 HTTP1.x有以下优势: 采用二进制格式传输协议&#xff…

你真的会设计测试用例吗?

前言 最近干的最多的事情就是设计测试用例、评审测试用例了&#xff0c;于是我不禁又想到了一个经典的问题&#xff1a;如何设计出优秀的测试用例&#xff1f; 可能有些童鞋看到这个问题会有些不以为然&#xff0c;这有什么好想的&#xff1f;干个测试谁还不会设计测试用例&a…

IDEA插件的在线离线安装

插件的使用 插件的设置 在 IntelliJ IDEA 的安装讲解中我们其实已经知道&#xff0c;IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的&#xff0c;只是 IntelliJ IDEA 本身就是它自己的插件平台最大的开发者而已&#xff0c;开发了很多优秀的插件。 官网插件库&…

pdf怎么转换成ppt?可以试试这三种方法

pdf怎么转换成ppt&#xff1f;PDF和PPT是我们工作、学习中最为常见的文档格式之一&#xff0c;特别是PPT&#xff0c;几乎成为了商务汇报和学术演示的标配。有时候&#xff0c;我们需要将PDF文档转换成PPT格式以方便编辑和演示。那么&#xff0c;PDF怎么转换成PPT呢&#xff1f…

信息化建设第三方验收测试报告要求

信息化建设是企业未来高质量发展的必由之路&#xff0c;也是企业法治的必要手段。 信息化建设指品牌利用现代信息技术来支撑品牌管理的手段和过程。随着计算机技术、网络技术和通信技术的发展和应用&#xff0c;企业信息化已成为品牌实现可持续化发展和提高市场竞争力的重要保…

【UE 材质】力场护盾和冲击波效果

目录 效果 步骤 一、制作力场护盾材质 二、制作冲击波材质效果 三、制作冲击波粒子效果 四、制作震动效果 效果 步骤 一、制作力场护盾材质 1. 首先新建一个第一人称角色游戏模板 2. 新建一个材质&#xff0c;用于作为力场护盾的材质&#xff0c;这里命名为“Mat_for…

释放数据的潜力:用梯度上升法解锁主成分分析(PCA)的神奇

文章目录 &#x1f340;引言&#x1f340;什么是主成分分析&#xff08;PCA&#xff09;&#xff1f;&#x1f340;传统PCA vs 梯度上升PCA&#x1f340;PCA的优化目标&#x1f340;代码实现&#x1f340;求解第一主成分&#x1f340;求解第二主成分 &#x1f340;在sklearn中封…

数据结构:线性表之-循环双向链表(万字详解)

目录 基本概念 1&#xff0c;什么是双向链表 2&#xff0c;与单向链表的区别 双向链表详解 功能展示&#xff1a; 1. 定义链表 2&#xff0c;创建双向链表 3&#xff0c;初始化链表 4,尾插 5&#xff0c;头插 6&#xff0c;尾删 判断链表是否被删空 尾删代码 7&a…

怎么用excel管理固定资产

在当今的数字时代&#xff0c;我们已经习惯了使用各种电子工具来提高我们的生产力。其中&#xff0c;Excel无疑是一个强大的工具&#xff0c;它不仅可以帮助我们处理数据&#xff0c;还可以用来进行复杂的计算和分析。然而&#xff0c;你可能不知道的是&#xff0c;Excel也可以…

【已解决】src/spt_python.h:14:20: 致命错误:Python.h:没有那个文件或目录

src/spt_python.h:14:20: 致命错误&#xff1a;Python.h&#xff1a;没有那个文件或目录 问题 其中重点的报错信息 src/spt_python.h:14:20: fatal error: Python.h: No such file or directory 思路 sudo yum install python-devel然后重新安装需要的依赖。 解决 成功。…