如何在Windows系统上安装和配置Maven
Maven是一个强大的构建和项目管理工具,广泛应用于Java项目的自动化构建、依赖管理、项目构建生命周期控制等方面。在Windows系统上安装Maven并配置环境变量,是开发者开始使用Maven的第一步。本文将详细介绍如何在Windows系统上安装和配置Maven,并验证安装是否成功。
1. 检查系统要求
在开始安装Maven之前,确保你的操作系统满足以下最低要求:
- 操作系统: Windows 7 或更高版本
- JDK: 已安装Java开发工具包(JDK)。Maven需要Java环境才能正常工作。
如果还未安装Java,请参考如何在Windows上安装Java的文章进行安装。
2. 下载Maven
- 打开浏览器,访问Apache Maven的官方网站:Maven官网。
- 在下载页面中,选择“Binary zip archive”进行下载(如
apache-maven-3.8.6-bin.zip),这是Maven的二进制发行版,适合Windows系统使用。 - 下载完成后,解压缩下载的文件到本地磁盘。建议将其解压到如
C:\Program Files\Apache\Maven或D:\apache-maven等路径。
3. 配置环境变量
为了能够在命令行中使用Maven,必须配置环境变量。
配置 MAVEN_HOME 环境变量:
- 右键点击“此电脑”或“计算机”图标,选择“属性”。
- 点击“高级系统设置”进入“系统属性”窗口。
- 在“系统属性”窗口中,点击“环境变量”按钮。
- 在“系统变量”部分,点击“新建”按钮,创建一个新的系统变量:
- 变量名:
MAVEN_HOME - 变量值:Maven的安装路径(例如:
C:\Program Files\Apache\Maven\apache-maven-3.8.6)。
- 变量名:
- 点击“确定”保存。
配置 PATH 环境变量:
- 在“环境变量”窗口中,找到并选择
Path变量,点击“编辑”。 - 在“编辑环境变量”窗口中,点击“新建”,并添加以下路径:
C:\Program Files\Apache\Maven\apache-maven-3.8.6\bin(根据你的Maven安装路径进行修改)。
- 点击“确定”保存。
配置 JAVA_HOME 环境变量(如果未配置):
如果尚未设置 JAVA_HOME 环境变量,您需要进行配置,因为Maven依赖于Java环境。
- 在“系统变量”部分,点击“新建”按钮,创建
JAVA_HOME环境变量:- 变量名:
JAVA_HOME - 变量值:JDK的安装路径(例如:
C:\Program Files\Java\jdk-17)。
- 变量名:
- 点击“确定”保存。
4. 验证Maven安装
完成环境变量的配置后,打开命令提示符(按 Win + R,输入 cmd 回车),并输入以下命令来验证Maven是否正确安装:
mvn -version
如果Maven安装成功,命令行将输出Maven的版本信息,如下所示:
Apache Maven 3.8.6 (NON-Maven 3.8.6)
Maven home: C:\Program Files\Apache\Maven\apache-maven-3.8.6
Java version: 17.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17
OS: Windows 10 10.0 amd64
如果没有输出或提示“命令未找到”,请检查环境变量设置是否正确。
5. 配置镜像源(可选)
Maven在构建项目时,会从中央仓库下载依赖。如果你位于中国大陆,由于网络原因,访问Maven中央仓库可能会非常慢或不稳定。此时,你可以配置阿里云的Maven镜像源,以提高下载速度。
- 打开Maven安装目录下的
conf文件夹,找到settings.xml文件。 - 用文本编辑器打开
settings.xml文件,找到<mirrors>标签。 - 在
<mirrors>标签中添加以下内容:
<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><url>https://maven.aliyun.com/repository/public</url><blocked>false</blocked>
</mirror>
- 保存文件并关闭。
这样配置后,Maven会使用阿里云的镜像源来下载依赖,速度会更快。
6. 创建并构建第一个Maven项目
在完成Maven的安装和配置后,你可以开始创建一个简单的Maven项目,并使用Maven构建它。
创建项目:
在命令行中进入你希望创建项目的目录,运行以下命令来创建一个新的Maven项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-first-maven-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这个命令将生成一个基于 maven-archetype-quickstart 模板的简单Java项目,其中:
groupId:指定你的项目组织ID。artifactId:指定项目的名字。archetypeArtifactId:指定Maven项目模板。DinteractiveMode=false:禁用交互模式,使用默认值。
构建项目:
进入生成的项目目录,执行以下命令来编译并打包项目:
cd my-first-maven-project
mvn clean package
此命令将执行以下操作:
clean:清理项目中以前构建的文件。package:编译项目并打包成.jar文件,位于target目录下。
运行项目:
在 target 目录下找到生成的 .jar 文件,使用以下命令运行它:
java -cp target/my-first-maven-project-1.0-SNAPSHOT.jar com.example.App
你应该能够看到以下输出:
Hello World!
7. 常见问题及解决方法
-
问题:
mvn命令无法识别- 解决方法:检查
Path环境变量中是否正确配置了 Maven 的bin目录。
- 解决方法:检查
-
问题:Maven无法下载依赖
- 解决方法:检查你的网络连接,并考虑配置镜像源(如阿里云)来加速依赖下载。
-
问题:
java.lang.NoClassDefFoundError错误- 解决方法:确保项目的
pom.xml文件中配置了正确的依赖,并执行mvn clean install更新本地依赖库。
- 解决方法:确保项目的
8. 总结
通过本文的介绍,你已经成功安装并配置了Maven,并学会了如何创建和构建一个简单的Maven项目。Maven作为一个优秀的构建工具,极大地提高了项目管理和自动化构建的效率,能够帮助开发者更好地管理项目的依赖关系和构建过程。
随着对Maven的深入学习,你将能够更灵活地使用它来管理更复杂的项目依赖、构建生命周期以及插件。希望本文对你在Windows上安装和配置Maven有所帮助,助你迈出Java项目构建的第一步!
相关文章:
如何在Windows系统上安装和配置Maven
Maven是一个强大的构建和项目管理工具,广泛应用于Java项目的自动化构建、依赖管理、项目构建生命周期控制等方面。在Windows系统上安装Maven并配置环境变量,是开发者开始使用Maven的第一步。本文将详细介绍如何在Windows系统上安装和配置Maven࿰…...
STM32之GPIO输出与输出
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 一.GPIO输入1.1GPIP简介1.2GPIO基本结构1.3GPIO位结构1.4GPIO的八种模式1.4.1浮空/上拉/下拉输入1.4.2 模拟输入1.4.3 推挽输出\开漏输出 二.GPIO输入2.1.按键介绍2.2传感器模块介绍2.3按键电路 一.G…...
linux定时器操作
目录 1 简单示例2 timer_create方式2.1 SIGEV_SIGNAL信号方式通知2.2 SIGEV_THREAD启动线程方式通知2.3 参数 1 简单示例 #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <signal.h> #include <unistd.h>void setup_t…...
重拾设计模式--观察者模式
文章目录 观察者模式(Observer Pattern)概述观察者模式UML图作用:实现对象间的解耦支持一对多的依赖关系易于维护和扩展 观察者模式的结构抽象主题(Subject):具体主题(Concrete Subject…...
Vue.js前端框架教程7:Vue计算属性和moment.js
文章目录 计算属性(Computed Properties)基本用法缓存机制计算属性 vs 方法使用场景计算属性的 setter 和 getter结论Moment.js 进行时间处理1. 安装 Moment.js2. 在 Vue 组件中引入 Moment.js3. 在全局使用 Moment.js4. 使用 Vue 插件的方式引入 Moment.js5. 常用日期格式化…...
【游戏设计原理】22 - 石头剪刀布
一、游戏基础:拳头、掌心、分指 首先,石头剪刀布(又名“Roshambo”)看似简单,实际上可是个“深藏玄机”的零和博弈(听起来很高深,其实就是输赢相抵消的意思)。游戏中有三种手势&…...
3-Gin 渲染 --[Gin 框架入门精讲与实战案例]
在 Gin 框架中,渲染指的是将数据传递给模板,并生成 HTML 或其他格式的响应内容。Gin 支持多种类型的渲染,包括 String HTML、JSON、XML 等。 String 渲染 在 Gin 框架中,String 渲染方法允许你直接返回一个字符串作为 HTTP 响应…...
python小课堂(一)
基础语法 1 常量和表达式2 变量和类型2.1 变量是什么2.2 变量语法 3 变量的类型3.1 动态类型特性 4 注释4.1注释是什么 5 输入输出5.1 print的介绍5.2 input 6 运算符6.1 算术运算符在这里插入图片描述6.2 关系运算符6.3 逻辑运算符6.4赋值运算符 1 常量和表达式 在print()中可…...
GESP202309 二级【小杨的 X 字矩阵】题解(AC)
》》》点我查看「视频」详解》》》 [GESP202309 二级] 小杨的 X 字矩阵 题目描述 小杨想要构造一个 的 X 字矩阵( 为奇数),这个矩阵的两条对角线都是半角加号 ,其余都是半角减号 - 。例如,一个 5 5 5 \times 5 5…...
@PostConstruct注解解释!!!!
PostConstruct 注解修饰的方法是在 Bean 完成初始化后自动调用的。它是 Java EE 和 Spring 中的一种机制,用于在 Bean 被创建并依赖注入完成后,执行一些初始化的操作。 具体触发时机: 依赖注入完成后:首先,Spring 容器…...
laya游戏引擎中打包之后图片模糊
如下图正常运行没问题,打包之后却模糊 纹理类型中的默认类型都是精灵纹理,改为默认值即可。注意:要点击“应用”才可有效。精灵纹理类型会对图片进行渲染处理,而默认值 平面类型不会处理图片。...
【数据结构练习题】链表与LinkedList
顺序表与链表LinkedList 选择题链表面试题1. 删除链表中等于给定值 val 的所有节点。2. 反转一个单链表。3. 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。4. 输入一个链表,输出该链…...
[项目代码] YOLOv8 遥感航拍飞机和船舶识别 [目标检测]
项目代码下载链接 <项目代码>YOLO 遥感航拍飞机和船舶识别<目标检测>https://download.csdn.net/download/qq_53332949/90163939YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为…...
移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备
移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备 一、前提条件 确保路由器硬件支持: OpenWrt 路由器需要足够的存储空间和 CPU 性能来运行 Tailscale。确保设备架构支持 Tailscale 二进制文件,例…...
JVM对象分配内存如何保证线程安全?
大家好,我是锋哥。今天分享关于【JVM对象分配内存如何保证线程安全?】面试题。希望对大家有帮助; JVM对象分配内存如何保证线程安全? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在JVM中,对象的内存分配…...
ArcGIS计算土地转移矩阵
在计算土地转移矩阵时,最常使用的方法就是在ArcGIS中将土地利用栅格数据转为矢量,然后采用叠加分析计算,但这种方法计算效率低。还有一种方法是采用ArcGIS中的栅格计算器,将一个年份的地类编号乘以个100或是1000再加上另一个年份的…...
数据库 MYSQL的概念
数据库的概念 数据库是按照数据结 构来组织、存储和管理数据的系统,它允许用户高效地存储、检索、更新和管理数据 database:用来组织,存储,管理数据的仓库 数据库的管理系统:DBMS,实现对数据的有效储值&am…...
Node.js后端程序打包问题汇总(webpack、rsbuild、fastify、knex、objection、sqlite3、svg-captcha)
背景说明 场景 使用 node.js 进行后端开发,部署时通常需要打包为单文件,然后放到服务器运行。 这里记录我在打包过程中,碰到的各类问题及解决方案,希望能够帮助到更多道友😄 提示 此文持续更新,可以收藏⭐…...
部署 Apache Samza 和 Apache Kafka
部署 Apache Samza 和 Apache Kafka 的流处理系统可以分为以下几个步骤,涵盖环境准备、部署细节和生产环境的优化。 1. 环境准备 硬件要求 Kafka Broker:至少 3 台服务器,建议每台服务器配备 4 核 CPU、16GB 内存和高速磁盘。Samza 部署节点:根据任务规模,至少准备 2 台…...
xiaomiR4c openwrt
文章目录 openwrt 安装openwrt 配置开启WiFi 救砖minieap编译参数帮助 openwrt 安装 Router:xiaomi R4C官方固件:openwrt 23.05.5 (下图标红处)官方教程 下载 OpenWRTInvasionpython remote_command_execution_vulnerability.py …...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
