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>两个标签之间,其它配置同理)

 

<!-- 阿里云仓库 -->
<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不会这样做!

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

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

相关文章

操作系统整理(一)

目录 一、引言 二、操作系统 ------>2.1、整体介绍 ------------>2.1.1、kernel主要组件 ------------>2.1.2、内核版本 ------------>2.1.3、qemu 搭建kernel调试环境 ------>2.2、linux启动流程 三、五大子系统介绍 四、IO机制原理与系统总线 -----…

MySQL数据库--分组与统计

目录 1.统计函数 1.1COUNT&#xff08;&#xff09;函数 1.2SUM&#xff08;&#xff09;函数 1.3AVG()函数 1.4MAX()函数 1.5MIN()函数 2.分组查询 2.1单独使用GROUP BY分组查询 2.2使用GROUP BY分组和统计函数一起查询 2.3HAVING限制分组查询结果 欢迎 1.统计函数 …

人工智能改善客户体验的10种方式

什么是人工智能客户体验&#xff1f; 人工智能客户体验是指使用人工智能技术&#xff08;如机器学习、聊天机器人和对话式用户体验&#xff09;使每个接触点尽可能高效且无障碍的实践。本质上&#xff0c;客服代表得到了一个虚拟助手帮助他们完成重复性任务。这意味着对于有简…

Vue3选项式和组合式生命周期说明

生命周期&#xff1a;composition 生命周期先后顺序为&#xff1a; setup -beforeCreate和created的统称&#xff0c;只在composition里面取消这两个&#xff0c;可以在这里进行数据请求 onBeforeMount-挂载前&#xff0c;可以请求后台数据 onMounted-挂载&#xff0c;可以…

期权(1):基本概念,权利金,定金,买方,卖方,零和游戏,对赌协议

期权是合约&#xff0c;权利金就是定金&#xff01; 合约到期时 买方可以选择行权&#xff0c;也可以选择不行权。代价就是定金损失。因此亏损封顶&#xff0c;但盈利无限。卖方赚的就是买方的定金&#xff0c;盈利封顶&#xff0c;但亏损无限。 从这里&#xff0c;我们看出…

C语言例题42、打印金字塔

#include <stdio.h>void main() {int i, j;for (i 0; i < 5; i) {for (j 4; j > i; j--) {//输出空格printf(" ");}for (j 0; j < 2 * i 1; j) {//输出星号printf("* ");}printf("\n");} }运行结果&#xff1a; 本章C语言经…

HTML5实现简洁好看的个人主页,个人小站(多种风格附源码)

文章目录 1.烟灰主题个人主页1.1 个人主页界面1.2 个人信息界面1.3 兴趣爱好界面1.4 个人作品界面 2.紫霞主题个人主页2.1 个人主页界面2.2 个人信息界面2.3 兴趣爱好界面2.4 个人作品界面 3.墨夜主题个人主页3.1 个人主页界面3.2 个人信息界面3.3 兴趣爱好界面3.4 个人作品界面…

查看所有Python虚拟环境的方法

查看所有Python虚拟环境的方法取决于你使用的是哪种虚拟环境管理工具。下面是几种常见情况下的查看方法&#xff1a; 使用 venv 或标准Python虚拟环境&#xff1a; 在大多数Unix/Linux系统&#xff08;包括macOS&#xff09;上&#xff0c;如果你使用的是Python自带的 venv 模块…

优雅谈论大模型5: RAG

RAG 众所周知&#xff0c;大模型以及一些预训练的模型在训练完毕之后会在其参数存储了大量的压缩资讯。但是这样的参数是通过固定的语料库训练而成&#xff0c;训练完毕之后这个模型已经固定了。然而外部资讯瞬息万变&#xff0c;加上大模型本质上为一种概率模型&#xff0c;所…

中级经济师报考条件

遵守中华人民共和国宪法和法律&#xff0c;具有良好的道德品行和业务素质&#xff0c;符合以下中级经济专业技术资格考试报名条件的经济专业人员&#xff0c;均可报名&#xff1a; 1. 高中毕业并取得初级经济专业技术资格&#xff0c;从事相关专业工作满10年; 2. 具备大学专科…

unapp写微信小程序每次版本更新后自动更新应该怎么实现?

1.找到项目组件中的app.vue文件 2.在methods中实现如下函数 checkUpdataWxapp() {const updateManager uni.getUpdateManager();updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调});updateManager.onUpdateReady(function (res) {uni.showModal({t…

Nginx读书笔记

Nginx 是高性能的 HTTP 和反向代理的web服务器

ffmpeg使用xfade的转场特效

ffmpeg使用xfade的转场特效 1. 介绍2. ffmpeg里面的xfade3. 使用 1. 介绍 参考文档 ffmpeg是一个音视频编辑工具&#xff0c;具体的。。。。我才搞接触&#xff0c;所以不懂。 xfade是一种视频转场滤镜&#xff0c;用于在两个视频片段之间创建平滑的过渡效果。xfade的转场效果…

软件测试有哪些常用的测试方法?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 软件测试是软件开发过程中重要组成部分&#xff0c;是用来确认一个程序的质量或者性能是否符合开…

visual studio snippet常用注释片段

Visual Studio 2022 添加自定义代码片段_vs2022 代码片段-CSDN博客 dclass.snippet: <?xml version"1.0" encoding"utf-8"?> <CodeSnippets xmlns"http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> …

前端JS必用工具【js-tool-big-box】学习,检测当前是否为手机端浏览器,检测某元素是否处于当前可视范围内

这一小节&#xff0c;js-tool-big-box工具库又迎来了两个非常实用功能成员&#xff0c;分别是检测当前浏览器是否为手机端浏览器&#xff0c;还有检测某元素当前是否处于可视范围内。 1 安装引入 通过npm安装&#xff0c;执行以下命令 npm i js-tool-big-box 这两个功能&…

@RequestParam和 @RequestBody有什么区别?

在Spring框架中&#xff0c;RequestParam和RequestBody是用于处理HTTP请求数据的两个不同注解&#xff0c;它们在使用场景和数据处理方式上有所区别。 RequestParam RequestParam用于将请求参数区数据绑定到控制器方法的参数上。它主要用于处理GET请求中的查询参数&#xff0…

跨域数据流动:数据提取过程中的治理与安全双轮驱动

跨域数据流动&#xff1a;数据提取过程中的治理与安全双轮驱动 随着信息技术的飞速发展&#xff0c;跨域数据流动已成为现代社会的常态。从医疗记录到金融交易&#xff0c;从社交媒体到企业运营&#xff0c;数据在各个领域之间频繁交换&#xff0c;为社会发展带来了极大的便利…

汽车电子笔记之-012:旋变工作原理及软解码硬解码

目录 1、旋变 1.1、激励的产生 1.2、旋变的标定 2、旋变解码 2.1、旋变硬解码 2.2、软解码 1、旋变 旋转变压器&#xff08;旋变&#xff09;&#xff0c;是电机控制中常用的一种位置传感器&#xff0c;用来反应电机的转子位置&#xff0c;提供给软件做电机控制等相关算法…