当前位置: 首页 > news >正文

【Java开发】Maven安装配置详细教程

原创文章,不得转载。

文章目录

    • 产生背景
    • 用途
    • 安装
    • 配置本地仓库
    • 配置镜像

产生背景

在Java应用程序开发中,随着项目规模的不断扩大和复杂性增加,项目依赖的库、插件和配置文件也变得愈加复杂。传统的项目构建工具(如Ant)虽然可以解决部分问题,但依赖管理仍然需要手动操作,导致开发者不得不自己下载和管理各种依赖库。与此同时,开发人员还需要编写复杂的构建脚本,手动配置项目的编译、打包、测试等过程,增加了维护成本。

为了应对这些问题,Apache软件基金会推出了Maven。Maven诞生的目的是简化项目构建过程、依赖管理,并且提供一致的项目结构和开发生命周期,使开发人员能够更加专注于编写代码,而不必花费大量时间在构建和依赖管理上。

用途

1、Maven能够自动化执行项目的构建过程,包括编译、测试、打包、部署等。开发者只需配置构建规则,Maven就能自动完成这些操作。

2、Maven提供了一种统一的方式来管理项目依赖项。开发者可以通过简单的配置文件(pom.xml)声明所需的依赖,Maven会自动从中央仓库或自定义仓库下载并管理这些依赖。

3、Maven强制推行一种标准的项目结构和构建生命周期。这意味着每个Maven项目都有类似的目录结构,使得团队合作和项目维护变得更加方便。

4、Maven通过插件系统提供了可扩展性。可以使用现有的插件(如编译插件、打包插件、测试插件)来完成任务,也可以编写自定义插件来扩展Maven的功能。

5、Maven支持多模块项目,使开发者能够在一个母项目下管理多个子项目,并处理它们之间的依赖关系。

安装

官网下载地址:https://maven.apache.org/download.cgi,点击所需版本进行下载。

在这里插入图片描述
解压后复制文件路径D:\Security\Maven\apache-maven-3.9.9

在这里插入图片描述
在系统变量中点击新建后,输入变量名:MAVEN_HOME,变量值:D:\Security\Maven\apache-maven-3.9.9

在这里插入图片描述
在系统变量找到Path,然后点击新建,然后输入%MAVEN_HOME%\bin,然后一直点击确定:

在这里插入图片描述
进入cmd控制台,输入mvn -v,回显如下则说明Maven安装成功:

在这里插入图片描述

配置本地仓库

在Maven中,仓库用于存储项目所需的依赖库。Maven仓库主要有两种:本地仓库和中央仓库。本地仓库位于本地机器上,存储已下载的插件和依赖。当Maven构建项目时,首先会在本地仓库中查找依赖,如果未找到,则会从远程仓库(如中央仓库)下载并保存到本地仓库。

D:\Security\Maven\apache-maven-3.9.9目录下新建文件夹,用来当作 Maven 的本地仓库:

在这里插入图片描述
接着进入 conf 目录,打开 settings.xml 文件,找到本地仓库地址标签,在下方复制标签并添加D:\Security\Maven\apache-maven-3.9.9\warehouse

在这里插入图片描述

配置镜像

Maven的默认中央仓库位于国外,国内用户可能会因为网络延迟和带宽限制而遇到下载速度慢或连接失败的情况。可通过修改Maven的配置文件(如settings.xml),将默认的中央仓库地址替换为国内的镜像(如阿里云或华为云的Maven镜像),显著提高依赖包的下载速度。

进入 conf 目录,打开 settings.xml 文件,找到<mirror></mirror>

在这里插入图片描述
将其修改为:

<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyunMaven</name><url>https://maven.aliyun.com/nexus/content/groups/public</url> </mirror>

在这里插入图片描述

此后即可使用Maven。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python模块06 mock-1基础用法
  • JavaWeb:实验一JSP运行环境安装及配置
  • 5.Redis 集群 主从复制 哨兵
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • java构建工具-maven的复习笔记【适用于复习或者初步了解】
  • WebView快速打开
  • 公司招聘中,多个面试官对候选人评价不一致怎么办?
  • class 3: vue.js 3 计算属性
  • Java中的注解(Annotation)
  • MySQL入门学习-MySQL的连接查询
  • switch语句和while循环
  • 算法练习题07:无重复字符的最长子串
  • 临时性解决斐讯K3 路由器端口转发限制
  • GO Date数据处理
  • CSS-定位【看这一篇就够了】
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Git 使用集
  • IDEA常用插件整理
  • socket.io+express实现聊天室的思考(三)
  • Spring Boot MyBatis配置多种数据库
  • Vim 折腾记
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 初识MongoDB分片
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 模型微调
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 数据可视化之 Sankey 桑基图的实现
  • 译自由幺半群
  • 再次简单明了总结flex布局,一看就懂...
  • 栈实现走出迷宫(C++)
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 第二十章:异步和文件I/O.(二十三)
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (33)STM32——485实验笔记
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (全注解开发)学习Spring-MVC的第三天
  • (四)opengl函数加载和错误处理
  • (转)Mysql的优化设置
  • ..回顾17,展望18
  • .NET C# 配置 Options
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • ;号自动换行
  • [].slice.call()将类数组转化为真正的数组
  • [14]内置对象