Maven安装与配置教程

news2025/6/21 7:16:42

 

目录

一、前言

1.什么是Maven

2.为什么要使用Maven

二、Maven安装与配置

1.官网下载

2.Maven配置

3.修改Maven仓库下载镜像及修改仓库位置

3.1.修改仓库下载镜像地址

3.2.修改默认Maven的仓库位置

三、eclipse配置Maven

四、eclipse部署Maven项目

 注意事项:

1.目录结构不全

 2.寻找相关依赖

 3.项目依赖冲突

4.JSP版本问题


一、前言

1.什么是Maven

Maven是一个基于Java的项目管理工具(POM项目对象模型),它可以帮助开发人员自动化构建、测试和部署Java项目。Maven通过一个中央仓库来管理项目依赖,可以自动下载所需的依赖库,并且可以自动生成项目的构建脚本。使用Maven可以大大简化Java项目的构建和管理过程,提高开发效率和项目质量。

小贴士:什么是自动化构建?

自动化构建是指利用工具或脚本来自动执行项目构建过程的一种方法。在软件开发中,构建是将源代码转换为可执行软件的过程,包括编译、链接、打包等操作。传统上,构建过程需要手动执行,开发人员需要逐步执行一系列命令或操作来完成构建。而自动化构建通过使用构建工具或脚本,将这些操作自动化执行,减少了手动操作的繁琐和错误,提高了构建的效率和一致性。

自动化构建可以实现以下功能:

  1. 编译源代码:将源代码转换为可执行的二进制文件。
  2. 依赖管理:自动下载和管理项目所需的依赖库。
  3. 测试:自动执行单元测试、集成测试等测试过程。
  4. 打包:将编译后的代码打包成可部署的软件包。
  5. 文档生成:自动生成项目文档。
  6. 部署:自动将构建好的软件包部署到目标环境。

通过自动化构建,开发人员可以节省时间和精力,减少人为错误,提高软件开发的效率和质量。

2.为什么要使用Maven

假设有一个团队正在开发一个Java Web应用程序,该应用程序需要使用多个第三方库和框架,如Spring、Hibernate、Log4j等。如果不使用Maven,开发人员需要手动下载这些库和框架,并将它们添加到项目的classpath中。这样做存在以下问题:

  1. 依赖管理困难:如果需要更新或切换库和框架的版本,需要手动下载和替换相应的jar包,容易出现版本冲突和错误。

  2. 构建过程繁琐:每次构建项目都需要手动编译、打包、部署等操作,容易出现手误和错误。

  3. 项目管理不便:如果有多个子项目,需要手动管理每个子项目的版本、构建、文档等信息,容易出现混乱和错误。

如果使用Maven,开发人员只需要在项目的pom.xml文件中声明所需的依赖库和框架,Maven会自动下载和管理这些依赖,并自动生成项目的构建脚本。

小贴士:市面上除了Maven还有Ant、Gradle等为什么选择Maven?

  1. Ant:Ant是一个基于XML的构建工具,可以实现自动化构建、测试、打包等操作。相比Maven,Ant的配置更加灵活,可以根据项目的需求自定义构建过程。但是Ant的依赖管理和项目管理相对较弱,需要手动管理依赖和项目信息

  2. Gradle:Gradle是一个基于Groovy的构建工具,可以实现自动化构建、测试、打包等操作。相比Maven和Ant,Gradle的配置更加简洁,构建速度更快。同时,Gradle也支持多项目管理和依赖管理。但是,Gradle的学习曲线相对较陡峭,需要掌握Groovy语言和Gradle的DSL

二、Maven安装与配置

1.官网下载

Maven官网https://maven.apache.org/download.cgi

 注意事项:后缀是.gz压缩格式用于unix的操作系统,而zip用于windows的操作系统。

2.Maven配置

1.将下载好的压缩包,解压至你想要安装的目录下。

2.复制Maven的根目录

3.配置Maven环境变量 

此电脑➡高级系统设置➡环境变量➡

 4.在Path中新建

 

 5.CMD命令工具测试 输入:mvn -v

出现以上页面则表示安装成功!!

注意事项:在执行完以后会出现一句“‘cmd’不是内部或外部命令,也不是可执行程序或批处理文件”,如下图:

首先,能够正确执行mvn命令,说明Maven的配置是没问题的,那么问题出在什么地方呢?找来找去最后定位到是环境变量的问题,查看系统变量中的Path,发现里面缺少了%SystemRoot%\system32;%SystemRoot%,于是果断加上,再次执行mvn命令,发现那句话已经不见啦!

3.修改Maven仓库下载镜像及修改仓库位置

第一次以Maven的方式搭建Java项目时,下载所需的jar包足足用去四五个小时。假如搭建的大型项目开发框架时,这样的下载jar包速度是远远不行的,下载慢的原因是服务器在国外,要翻墙才能下载,大约速度在0.9K/s的下载速度,有些程序员知道翻墙解决,那么不知道的怎么办?所以我们安装好Maven时,要及时的修改Maven下载的镜像地址,最好改为国内的下载镜像,例如阿里云中央仓库,华为云中央仓库。

3.1.修改仓库下载镜像地址

Maven安装目录➡conf文件➡settings.xml用记事本打开

CTRL+F快速查找输入mirrors标签

 将里面的内容进行删除,替换成阿里云镜像


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

3.2.修改默认Maven的仓库位置

Maven安装目录➡conf文件➡settings.xml用记事本打开

CTRL+F快速查找输入localRepository标签

复制上面的地址进行修改

更改成自己存放文件夹路径(文件夹名称可随意,斜杆必须转成反斜杠)

<localRepository>E:/apache-maven-3.5.0-bin/mvn_Repository</localRepository>

例子:E盘下apache-maven-3.5.0-bin文件夹下mvn_Repository为我的maven仓库

完成以上两步后,再次搭建Maven项目,下载一个大型项目的jar大约10S左右,开发体验度瞬间飙升。

三、eclipse配置Maven

打开我们的eclipse开发工具,点击菜单栏window➡preferences➡Maven➡Installations

勾选引用然后点击User Settings

 选择Global Settings或者User Settings都没关系,到这里Maven就配置完成了。

四、eclipse部署Maven项目

CTRL+N输入Maven选择Maven Project

 

 第一次新建Maven项目比较慢,因为要下很多东西,这时候发现我们的仓库就有“东西”了。

 注意事项:

1.目录结构不全

 建立完成后我们的项目是会报错的,因为在eclipse我们的Maven项目的目录结构还不全面。

右击报错的项目Build Path➡Configure Build Path

 2.寻找相关依赖

 因为Maven项目不支持JSP依赖所以手动去仓库寻找依赖加入到项目中

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

 

CTRL+S保存下载完毕后就已经有了我们的JSP依赖

 3.项目依赖冲突

 有的时候些项目不知道为什么无缘无故报错,排除所有问题后无果,那么就有可能是版本依赖的问题找到项目中的POM.XML➡右击Run As➡Maven test进行测试

如果显示如下图那么就没有问题

如果是报红的就有可能是最新添加的依赖有问题(PS:受到网络影响没有下全),无需多言将最新添加的依赖进行删除重新下载即可。 

4.JSP版本问题

我们下载的是3.1的版本但是它默认是2.3的版本需要进行替换

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

修改web.xml由2.3至3.1

 右击报错的项目Properties➡Maven➡Project Facets

 注意:先取消勾选下拉修改成对应版本后Apply应用后再进行勾选

 将maven-compiler-plugin插件配置到POM.XML文件中

            <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>

最后测试一波

恭喜你看到这里就已经完成啦!! 

 到这里我的分享就结束了,欢迎到评论区探讨交流!!

如果觉得有用的话还请点个赞吧 ♥  ♥

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

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

相关文章

Python非线性全局优化

文章目录 全局优化函数简介详解性能测试 全局优化函数简介 scipy的optimize模块非常强大&#xff0c;也是我个人使用最多的scipy模块&#xff0c;这里面封装的都是成熟且高效的算法&#xff0c;久经考验。对于参加数学竞赛的同学来说&#xff0c;辛辛苦苦撸出来的遗传算法、模…

Eudic欧路词典 for Mac v4.4.5增强版

欧路词典 (Eudic)是一个功能强大的英语学习工具&#xff0c;它包含了丰富的英语词汇、短语和例句&#xff0c;并提供了发音、例句朗读、单词笔记等功能。 多语种支持&#xff1a;欧路词典支持多种语言&#xff0c;包括英语、中文、日语、法语等等&#xff0c;用户可以方便地进…

Kubernetes 调度 约束

调度约束 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。 APIServer…

python——案例14:斐波那契数列

兔子生殖为例子而引入&#xff0c;故又称“兔子数列”&#xff0c; 其数值为&#xff1a;1、1、2、3、5、8、13、21、34……在数学上&#xff0c; 这一数列以如下递推的方法定义&#xff1a; F(0)1&#xff0c;F(1)1, F(n)F(n - 1)F(n - 2)&#xff08;n ≥ 2&#xff0c;n ∈ …

液体神经网络:LNN是个啥概念?

一、说明 在在人工智能领域&#xff0c;神经网络已被证明是解决复杂问题的非常强大的工具。多年来&#xff0c;研究人员不断寻求创新方法来提高其性能并扩展其能力。其中一种方法是液体神经网络&#xff08;LNN&#xff09;的概念&#xff0c;这是一个利用动态计算功能的迷人框…

Simpack助力中国铁路创新发展

中国铁路尤其是高铁的迅速发展是中国装备制造业走向世界一张名片&#xff0c;不仅为人们出行提供了便利&#xff0c;也为中国经济的快速增长提供了有力的支撑。同时&#xff0c;高速铁路的发展给产品研发带来了新的课题和挑战。尤其在动力学领域&#xff0c;各部件或子系统之间…

DP(区间DP)

石子合并 设有 N 堆石子排成一排&#xff0c;其编号为 1,2,3,…,N。 每堆石子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆石子的质量之和&#xff0c;合并后与这两堆…

远程通信-RPC

项目场景&#xff1a; 在分布式微服务架构中&#xff0c;远程通信是最基本的需求。 常见的远程通信方式&#xff0c;有基于 REST 架构的 HTTP协议、RPC 框架。 下面&#xff0c;从三个维度了解一下 RPC。 1、什么是远程调用 2、什么是 RPC 3、RPC 的运用场景和优 什么是远程调用…

树莓派第一次开机

文章目录 基于树莓派的OpenEuler基础实验一一、树莓派介绍树莓派较普通电脑的优势1、廉价便携可折腾2、树莓派运行开源的Linux操作系统3、编程好平台4、开源大社区5、引脚可编程6、便携随身带7、灵活可扩展 二、openEuler embedded介绍三、树莓派开机指南1. 硬件准备2. 软件准备…

ROS入门-使用常用的ROS命令行工具:操作节点、话题、服务、消息和参数

目录 使用常用的ROS命令行工具&#xff1a;操作节点、话题、服务、消息和参数 1. rosnode&#xff1a;操作节点 2. rostopic&#xff1a;操作话题 3. rosservice&#xff1a;操作服务 4. rosmsg&#xff1a;操作msg消息 5. rossrv&#xff1a;操作srv消息 6. rosparam&am…

MySQL 存储过程、函数、触发器、事件

​ 目录 存储过程 创建存储过程 调用存储过程 查看存储过程 删除存储过程 进阶 变量 if条件判断 传递参数 case结构 while循环 repeat结构 loop语句 leave语句 游标/光标 存储函数 触发器 创建触发器 删除触发器 查看触发器 事件 查看事件调度器是否开启…

eNSP:ebgp和bgp的基础运用

实验要求&#xff1a; 拓扑图&#xff1a; 命令操作&#xff1a; r1: <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24[r2]ospf 1 router-id 2.2.2.2 [r2…

肉豆蔻酰五肽-8——祛眼袋和黑眼圈

肉豆蔻酰五肽-8 简介 眼袋和黑眼圈形成的原因&#xff1a; 1. 随着年龄的增大眼部皮肤会失去弹性, 眼部肌肉同时也会松弛, 从而在眼脸形成皱褶。衬垫在眼眶的脂肪从眼腔转移出并在眼脸聚集。袋状眼脸医学上称为皮肤松垂, 通常可以通过眼脸成形术得到改善。 2. 眼袋形成另外一…

【2023年11月第四版教材】《第2章-信息技术发展(合集篇)》

《第2章-信息技术发展&#xff08;第一部分&#xff09;》 章节说明1 计算机软硬件2 计算机网络2.1 网络的作用范围2.2 OSI模型2.3 广域网协议2.4 网络协议2.5 TCP/IP2.6 软件定义网络&#xff08;SDN&#xff09;2.7 第五代移动通信技术 3 存储和数据库3.1 存储系统架构3.2 存…

能化校对软件:提高招标文件质量的创新解决方案

智能化校对软件是一种创新的解决方案&#xff0c;可以进一步提高招标文件的质量和准确性。 以下是一些智能化校对软件的创新功能和优势&#xff1a; 1.自然语言处理(NLP)技术&#xff1a;智能化校对软件利用NLP技术来理解和分析文本&#xff0c;识别和纠正更复杂的语法和语义错…

Linux系统性能调优及调试课:Linux Kernel Printk

🚀返回专栏总目录 文章目录 0、printk 说明1、printk 日志等级设置2、屏蔽等级日志控制机制3、printk打印常用方式4、printk打印格式0、printk 说明 在开发Linux device Driver或者跟踪调试内核行为的时候经常要通过Log API来trace整个过程,Kernel API printk()是整个Kern…

需要数电发票接口的,先熟悉下数电发票基本常识

最近有一些技术小伙伴来咨询数电发票接口的时候&#xff0c;对数电发票的一些常识不太了解&#xff0c; 导致沟通起来比较困难。比较典型的这三个问题&#xff1a; 一、开具数电票时&#xff0c;如何设置身份认证频次&#xff1f; 请公司的法定代表人或财务负责人登录江苏省电…

什么是回归测试?回归测试的类型和方法?

随着软件开发进程的进行&#xff0c;每一次的修改和更新都有可能引入新的问题和错误。为了确保产品质量和稳定性&#xff0c;需要进行回归测试。那么&#xff0c;什么是回归测试&#xff1f;本文将为您解答。 回归测试是指在软件代码、使用环境或产品需求发生改变时&#xff0…

MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0)

文章目录 一、简介1. MinGW 和 MinGW-W64 区别和联系2. MSVCRT 和 UCRT 介绍 二、下载1. 从 sourceforge.net 下载2. 从 github 下载3. 从 镜像站点 下载4. 自己编译 三、安装与配置1. 在线安装2. 离线安装3. 环境配置 四、总结 一、简介 1. MinGW 和 MinGW-W64 区别和联系 M…

Linux系统之使用cmatrix实现数字雨效果

Linux系统之使用cmatrix实现数字雨效果 一、cmatrix介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、环境准备工作3.1 安装开发环境3.2 安装基本软件3.3 安装 ImageMagick等工具 四、安装aalib工具4.1 新建目录4.2 下载aalib安装包4.3 解压软件包4.4 编译安装aalib …