Maven 环境配置全攻略:从入门到实战

一、Maven 简介

Maven 是一个基于项目对象模型 (POM) 的项目管理工具,它可以通过一小段描述信息来管理项目的构建、报告和文档。

除了强大的程序构建能力外,Maven 还提供了高级项目管理功能。其默认构建规则具有很高的可重用性,通常只需两三行构建脚本就能构建简单项目。目前,许多 Apache Jakarta 项目以及众多公司项目都在使用 Maven,采用率持续增长。

二、Maven 中央仓库

Maven 中央仓库地址:https://mvnrepository.com/

提示:如果加载缓慢,可根据个人网络情况使用加速器。

三、Maven 工程与非 Maven 工程对比

Maven 工程非 Maven 工程
自动下载并导入 jar 文件必须手动导入 jar 文件
jar 文件相互之间兼容性好jar 文件相互之间存在不兼容问题
删除或修改 jar 文件方便删除或修改 jar 文件不方便
支持多工程复用,方便复用不支持多工程复用,复用不方便
可以创建父子工程不可以创建父子工程

四、Maven 下载

4.1 下载地址

官方下载页面:Download Apache Maven – Maven

4.2 推荐版本

Apache Maven 3.9.4 是最新版本,推荐所有用户使用,最新发布时间为 2023-08-03。

4.3 系统要求

要求详情
Java 开发工具包 (JDK)Maven 3.9 + 需要 JDK 8 或更高版本才能执行。通过使用工具链,仍然可以针对 1.3 和其他 JDK 版本进行构建。
内存无最低要求
磁盘空间Maven 安装本身大约需要 10MB。此外,本地 Maven 仓库也会占用磁盘空间,其大小取决于使用情况,但至少需要 500MB。
操作系统无最低要求。包含的启动脚本有 shell 脚本(在许多 Unix 版本上测试过)和 Windows 批处理文件。

4.4 下载文件

Maven 提供多种分发格式,可选择现成的二进制分发档案:

  • Binary tar.gz archive:apache-maven-3.9.4-bin.tar.gz
  • Binary zip archive:apache-maven-3.9.4-bin.zip

五、Maven 配置

5.1 解压

下载后进行解压,注意不建议放在中文目录中

5.2 修改 Maven 配置文件

5.2.1 准备本地仓库目录

在 D 盘创建两个空文件夹:maven3repository(路径示例:D:\maven3\repository),用于存放本地仓库。

使用能显示行号的编辑器(如 Notepad++、VS Code 等)打开 Maven 安装目录下的settings.xml文件(位于 conf 文件夹中)。

5.2.3 配置本地仓库路径

在文件的第 55 行左右,添加本地仓库路径:

<localRepository>D:\mavenjar\repository</localRepository>
5.2.4 配置阿里云镜像

在文件的第 160 行左右的<mirrors>标签内,添加阿里云镜像配置(后续下载 jar 依赖将从阿里云仓库获取,速度更快):

<mirror><id>maven-default-http-blocker</id><mirrorOf>external:http:*</mirrorOf><name>Pseudo repository to mirror external repositories initially using HTTP.</name><url>http://0.0.0.0/</url><blocked>true</blocked>
</mirror>
<mirror><id>alimaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url><mirrorOf>central</mirrorOf>        
</mirror>

5.3 配置环境变量

5.3.1 新建系统变量
  • 变量名:MAVEN_HOME
  • 变量值:Maven 的安装路径(例如:D:\apache-maven-3.9.2)

5.3.2 编辑 Path 变量

在系统变量的Path中添加:%MAVEN_HOME%\bin

5.4 验证环境变量配置

打开 CMD 命令提示符,输入mvn -v,如果输出类似以下内容,则表示配置成功:

Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
Maven home: D:\apache-maven-3.9.2
Java version:11.0.19, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11
Default locale: zh_CN, platform encoding: GBK
OS name:"windows 10", version:"10.0", arch:"amd64", family:"windows"

六、配置 IDEA 的 Maven

6.1 打开设置界面

打开 IDEA,进入File -> Settings(或Ctrl + Alt + S)。

6.2 定位 Maven 设置

展开Build, Execution, Deployment -> Build Tools -> Maven

6.3 配置 Maven 路径

  • Maven home path:选择本地 Maven 的安装目录(例如:D:\apache-maven-3.9.2)
  • User settings file:选择 Maven 配置文件settings.xml的路径(例如:D:\apache-maven-3.9.2\conf\settings.xml),并勾选Override
  • Local repository:选择本地仓库路径(例如:D:\mavenjar\repository),并勾选Override

6.4 配置导入设置

进入Maven -> Importing,勾选以下选项:

  • Automatically download:Sources、Documentation、Annotations

七、IDEA 创建 Maven 工程

7.1 新建工程

  • 选择File -> New -> Project
  • 左侧选择Maven
  • 根据项目类型选择对应的 Archetype:
    • JavaSE 工程:org.apache.maven.archetypes:maven-archetype-quickstart
    • JavaWeb 工程:org.apache.maven.archetypes:maven-archetype-webapp
  • 填写项目名称、位置等信息,点击Create

等待加载完成,完整的Maven工程如下图 :

表示Maven的web工程创建成功.

至此Maven工程基本创建成功。

javase工程结构

1.9、添加依赖

九、Maven 常用命令

命令功能描述
mvn compile编译源代码
mvn deploy发布项目
mvn test-compile编译测试源代码
mvn test运行应用程序中的单元测试
mvn site生成项目相关信息的网站
mvn clean清除项目目录中的生成结果
mvn package根据项目生成 jar 包
mvn install在本地仓库中安装 jar
mvn tomcat:run启动 tomcat 服务
mvn clean package -Dmaven.test.skip=true清除以前的包后重新打包,跳过测试类

以上就是 Maven 环境配置及基本使用的全部内容,希望对大家有所帮助!如果有任何问题,欢迎在评论区留言讨论。

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

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

相关文章

现代 C++ 开发工作流(VSCode / Cursor)

✅ 推荐的现代 C 开发工作流&#xff08;含 VSCode / Cursor 插件配置&#xff09;&#x1f9f0; 一、环境要求 C 编译器&#xff08;如 g 或 clang&#xff09;CMake&#xff08;建议 ≥ 3.16&#xff09;clangd&#xff08;建议 ≥ 14&#xff0c;最好用系统包管理器安装&…

[SAP ABAP] ALV报表练习4

SO销售订单明细报表业务目的&#xff1a;根据选择屏幕的筛选条件&#xff0c;使用ALV报表显示销售订单详情(Sales Order、Material、现有Qty、已开立数量以及剩余数量等)信息效果展示我们在销售订单栏位输入需要查询的SO单号&#xff0c;这里我们以SO单号0000000221为例&#x…

《设计模式之禅》笔记摘录 - 10.装饰模式

装饰模式的定义装饰模式(Decorator Pattern)是一种比较常见的模式&#xff0c;其定义如下&#xff1a;Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending fu…

[AI8051U入门第十步]W5500-客户端

学习目标: 1、认识W5500模块 2、驱动W5500静态获取ip 3、获取全球唯一码作为mac地址 4、拔出网线重插网线自动获取IP 5、编写W5500作为客户端进行TCP/IP代码一、W5500介绍 W5500 是一款由韩国 WIZnet 公司推出的高性能 硬件 TCP/IP 嵌入式以太网控制器,专为嵌入式系统设计,…

UNETR++: Delving Into Efficient and Accurate 3D Medical Image Segmentation

摘要得益于Transformer模型的成功&#xff0c;近期研究开始探索其在3D医学分割任务中的适用性。在Transformer模型中&#xff0c;自注意力机制是核心构建模块之一&#xff0c;与基于局部卷积的设计相比&#xff0c;它致力于捕捉长距离依赖关系。然而&#xff0c;自注意力操作存…

Kotlin Flow 在 Jetpack Compose 中的正确打开方式:SharedFlow vs StateFlow 与 LaunchedEffect

在 Jetpack Compose 中&#xff0c;Kotlin Flow 是处理异步数据流的核心工具&#xff0c;而 SharedFlow 和 StateFlow 是最常用的两种 Flow 类型。但很多开发者对它们的适用场景、如何与 LaunchedEffect 配合使用存在困惑。本文将深入探讨它们的区别&#xff0c;并给出最佳实践…

嵌入式——C语言:指针①

一、指针特点1.让代码更加简洁高效2.提供直接访问内存的操作3.利用指针可以直接操作硬件二、指针概念&#xff08;一&#xff09;地址&#xff1a;为了区分内存中不同字节的编号&#xff08;0到2^16-1&#xff09;&#xff08;二&#xff09;指针&#xff1a;指针就是地址&…

RabbitMQ—HAProxy负载均衡

上篇文章&#xff1a; RabbitMQ—仲裁队列https://blog.csdn.net/sniper_fandc/article/details/149312579?fromshareblogdetail&sharetypeblogdetail&sharerId149312579&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 HAProxy安装…

QT中启用VIM后粘贴复制快捷键失效

当在QT中启用FakeVim之后&#xff0c;Ctrl C 和 Ctrl V 快捷键就变成 Vim 的快捷键了&#xff0c;我希望它还是原来的复制粘贴功能&#xff0c;打开&#xff1a;编辑 > Preferences…&#xff0c;然后勾选 “Pass control keys”即可&#xff0c;如下&#xff1a;

TCP三次握手与四次挥手全解析

&#x1f30a; TCP三次握手与四次挥手全解析&#xff08;含序列号动态追踪&#xff09;&#x1f511; TCP 协议核心机制 序列号 (seq)&#xff1a;数据字节流的唯一标识&#xff08;32位循环计数器&#xff09;确认号 (ack)&#xff1a;期望接收的下一个序列号&#xff08;ack …

7月26号打卡

作业&#xff1a;题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一…

C++/CLI与标准C++的语法差异(一)

&#x1f30c; C/CLI与标准C的语法差异&#xff08;一&#xff09;&#x1f52c; 第一章&#xff1a;类型系统革命 - 彻底解构三语言范式 &#x1f9ea; 1.1 类型声明语义差异矩阵 #mermaid-svg-L5kQ3iy05pKo4vIj {font-family:"trebuchet ms",verdana,arial,sans-se…

输电线路微气象在线监测装置:保障电网安全的科技屏障

在电力传输网络中&#xff0c;输电线路微气象在线监测装置通过集成专业传感器与智能分析技术&#xff0c;实现对线路周边环境参数的实时采集与动态分析&#xff0c;为电网运行安全提供数据支撑。该设备针对输电线路特殊工况设计&#xff0c;具备高适应性、高可靠性特点。工作原…

基于springboot的图书借阅系统

用户&#xff1a;借阅信息管理&#xff0c;续借信息管理&#xff0c;还书信息管理&#xff0c;图书信息&#xff0c;系统公告&#xff0c;留言板&#xff0c;我的中心管理员&#xff1a;图书信息管理&#xff0c;图书类型管理&#xff0c;借阅信息管理&#xff0c;续借信息管理…

Xinference vs SGLang:详细对比分析

概述对比特性XinferenceSGLang定位通用AI模型推理平台高性能LLM服务框架专注领域多模态模型统一接口LLM推理性能优化设计理念易用性和兼容性性能和效率核心架构对比 Xinference 架构特点 Xinference 架构&#xff1a; ├── API层&#xff08;REST/CLI/Python&#xff09; ├─…

双非上岸985!专业课140分经验!信号与系统考研专业课140+上岸中南大学,通信考研小马哥

一&#xff0e;经验分享个人情况&#xff1a;初试总分377&#xff0c;政治59&#xff0c;英语二75、数学二103、专业课140。本科为湖南一所双非一本&#xff0c;专业是电子信息工程&#xff0c;本科成绩一般&#xff0c;无奖学金无评优无科研竞赛&#xff0c;属于三无人员&…

配置DNS正反向解析

服务端master配置:yum install bind -y配置静态ip&#xff1a;修改配置文件&#xff1a;主&#xff1a;区域&#xff1a;正向解析&#xff1a;反向解析&#xff1a;开启服务&#xff1a;客户端node1配置&#xff1a;yum install nginx -y配置静态ip&#xff1a;使用xftp将文…

MyBatis-Plus 通用 Service

引言 在开发 Java Web 应用程序时&#xff0c;我们经常需要进行大量的数据库操作&#xff0c;如创建、读取、更新和删除&#xff08;CRUD&#xff09;。MyBatis-Plus 作为一个强大的 MyBatis 增强工具&#xff0c;为我们提供了通用 Service 接口&#xff0c;极大地简化了这些操…

聚类-一种无监督分类算法

目录 1、聚类任务 2、性能度量 &#xff08;1&#xff09;外部指标 &#xff08;2&#xff09;内部指标 3、具体聚类方法 &#xff08;1&#xff09;原型聚类 &#xff08;2&#xff09;密度聚类 &#xff08;3&#xff09;层次聚类 “无监督学习”(unsupervised learnin…

ES6 标签模板:前端框架的灵活利器

ES6&#xff08;ECMAScript 2015&#xff09;引入的模板字符串&#xff08;Template Literals&#xff09;为 JavaScript 开发者提供了更简洁的字符串处理方式&#xff0c;而模板字符串标签&#xff08;Tagged Template Literals&#xff09;则进一步扩展了其功能性。通过标签函…