Maven详细安装教程
一.Maven简介
1.1 Maven由来
a.我们在每次新建工程的时候,都需要引入一些jar包,可能产生一些问题或瑕疵
1.随着引入的jar包的增多,我们就不知道使用某个技术需要引入哪些jar包
2.需要明确某个jar包依赖的一些jar包
3.不同的工程或者模块之间引入大量重复的jar包
4.不同版本jar包之间兼容性问题
b.在开发过程我们会将一个大的工程拆分成多个不同的模块,每个模块交给不同的团队协同开发
这就涉及到一个模块与模块之间的互相访问或者互相调用问题
1.2 Maven概述
Maven是Apache下的一个开源项目,它是一个项目管理(构建)工具,它可以对java项目进行项目构建,
依赖(jar包)管理及项目项目信息管理
1.3 Maven组成
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一
个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用
来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
a.项目对象模型(Project Object Model)
每个maven工程下都有一个核心配置文件:pom.xml,主要定义了工程依赖,工程坐标,打包方式(jar
包和war包)
b.依赖管理系统(Dependency Management System)
maven对工程所依赖的jar包进行统一管理
c.maven统一项目的生命周期
清理,初始化,编译,测试,报告,打包,部署,发布站点
d.一组标准集合
maven工程通过一规定工程目录结构
e. 插件(plugin)目标(goal)
maven管理项目生命周期利用插件(命令集合)来完成
1.4 Maven仓库
1.4.1 仓库分类
本地仓库:在本地硬盘上建立一个文件夹(文件夹就相当于是一个仓库),在文件夹中存放了大量的jar包
远程仓库:互联网(局域网,Internet网)上一个存放大量jar包一个地址,这个地址就是一个仓库地址
公司搭建一个局域网的仓库:公司内部使用
发布到互联网上的仓库:可以被所有人使用 阿里云仓库
中央仓库:属于远程仓库的一种,是由maven团队负责维护一个仓库
固定仓库地址:https://repo1.maven.org/maven2
1.在本地仓库搜索,如果找到,直接使用,如果找不到执行步骤2
2.在中央仓库搜索,如果找到,将指定的jar包下载到本地仓库(缓存),然后引用本地仓库的jar包 如果找不到,执行步骤3
3.如果没有配置远程仓库,报错
如果配置了远程仓库,在远程仓库中搜索,如果找到下载到本地仓库(缓存),然后引用本地仓库jar
包
如果找不到报错
二.Maven下载和安装
https://maven.apache.org/download.cgi
配置环境变量
运行CMD 输入命令 mvn-version 查看maven是否配置成功
三.Maven仓库配置
a.本地仓库配置:conf/settings.xml <!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository --> <localRepository>E:/IDEARepository</localRepository> b.中央仓库配置:conf/settings.xml 中央仓库如果不配置默认使用:https://repo1.maven.org/maven2 由于默认中央仓库连接以及下载速度有时候会很慢,因此建议换成阿里云maven仓 库:https://maven.aliyun.com/repository/public <mirrors> <mirror> <id>AliMaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven repository</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>
下一节IDEA中使用Maven
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通