Maven

发布于:2025-07-23 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

1 什么是 Maven

2 Maven 核心功能 

项目构建

依赖管理

Maven Help 插件

3 Maven 仓库

本地仓库

中央仓库

私有服务器(简称私服)

4 Maven 设置国内源

配置当前项目 setting

设置新项目的 setting


1 什么是 Maven


Maven 是一个项目管理工具,基于 POM(Project Object Model,项目对象模型)的概念,Maven 可以通过一段描述信息来管理项目的构建,报告和文档的项目管理工具软件

大白话:Maven 是一个项目管理工具,通过 pom.xml (xml 格式是标签的形式)文件的配置获取 jar 包,而不是手动去添加 jar 包


在 idea 上创建一个项目 


2 Maven 核心功能 


Maven 提供的功能非常多,常见的两个:项目构建管理依赖

项目构建

项目内容非常多,同样也需要打 jar 包的,项目开发需要编译(把 Java 文件变成一个 class 文件)、打包(压缩成一个 jar 包,我们看到的 jdk 就是压缩包,里面都是 class 文件)、运行(最后把 jar 包运行起来)

Maven 则是帮我们做了上述的事情,让我们这个事情变得非常简单


Mawen 具体如何做:

这些插件是 idea 对 Maven 进行了集成,Maven 是可以单独安装使用的,并不仅仅局限于 Java 使用,idea 为了方便大家,对 Maven 进行了集成,我们只需要双击一下,例如双击一下 package 就可以打包


依赖管理


  • 依赖指当前项目运行需要的 jar 包
  • maven 通过 pom.xml 文件来管理

使用 Maven 不需要手动下载 jar 包,只需要在 pom.xml 中引入依赖


  1. 在 pom 文件 <dependencies> 标签内,添加依赖坐标
  2. pom.xml 文件的任意改动,都需要点击刷新


如果不小心把刷新 × 掉了,也可以点击右上角 Maven 处的刷新


刷新后就可以在项目中看到导入的 jar 包,不仅 jar 包导进来了, jar 包的依赖也导了进来


 传递依赖

  • 早期未使用 Maven 时,向项目中添加依赖的 jar 包,需要把所有 jar 都复制到项目工程下
  • 如果 A 依赖 B,B 依赖 C,那么 A 项目引入 B 同时也需要引入 C,如果我们手动管理这个依赖就会比较麻烦,需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的
  • 使用 Maven 就可以避免管理所需要的依赖关系,只需要在 pom 文件中直接定义依赖就可以了,由于 Maven 的依赖具有传递性,所以会自动把所依赖的其他 jar 包一起导入
  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

依赖排除

排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本(只需要指定要排除依赖的 “artifactld” 和 “groupld” )。因为排除的是传递性依赖,版本由依赖树决定,只需要告诉 Maven 排除哪个库(通过 “artifactld” 和 “groupld”,相当于一个坐标 ),不需要关心它的版本。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>6.0.6</version>

    <!--排除依赖-->
    <exclusions>
        <exclusion>
            <artifactId>>spring-jcl</artifactId>
            <groupId>org.springframework</groupId>
        </exclusion>
    </exclusions>
</dependency>

Maven 还有一些功能是依赖调解、可选依赖等

依赖调解:当项目中的依赖存在依赖冲突时,Maven 会选择最短路径优先的原则选择依赖

例如存在这样的依赖

当前项目中的依赖存在冲突,这里第二个路径更短,所以会选择 X(2.0),当然也可以指定 X 版本


Maven Help 插件


当项目比较复杂时,就会有 jar 包冲突问题,需要去解决依赖冲突,首先需要找到冲突,可以使用 Maven Help 插件来观察包和包之间的依赖关系

  • 像 IDEA 这样的程序虽然功能强大,但也无法面面俱到,对于一些特殊场景的开发,开发者可以开发一些 “插件”,如果需要这个插件就单独安装
  • 插件就是对程序一些特定场景,做出一些特定功能的扩展

安装插件:File -> Setting -> Plugins -> 搜索 “Maven Help” -> 找到对应插件,点击 Install 安装即可,安装完需要重启 IDEA 才能生效


  • 安装完后出现插件依赖分析
  • 通过图形界面化的方式查看冲突,所有依赖通过 List 或 Tree 方式展示 

  • 右键 Exclude 即可排除包,代码区会自动生成排除依赖的代码
  • 刷新一下项目区该排除的包就没有了

3 Maven 仓库

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
</dependencies>
  • 通过该代码可以将需要依赖的 jar 包引入项目
  • <dependencies><dependencies/> 里面放依赖
  • <dependency><dependency/> 里面放依赖的坐标

  • 在 Maven 中,根据 groupld、artifactfd、version 的配置,来唯一识别一个 jar 包,缺一不可
  • 当我们在 pom 文件中配置依赖之后,点击刷新,Maven 会根据坐标的配置,去仓库寻找 jar 包并下载添加到项目中,这个 jar 包下载的地方就称为仓库
  • 仓库:用于储存资源,管理各种 jar 包 

Maven 仓库本质就是一个目录(文件夹),这个目录被用来储存开发所有依赖(jar 包,插件等)

Maven 仓库分为两大类:本地仓库和远程仓库,远程仓库又分为中央仓库,私服和其他公共库


本地仓库


  • 在自己电脑上,自己计算机上有一个目录用来储存 jar 包
  • 本地仓库地址可以通过 Maven 配置查看(一个文件夹)

当项目中引入对应依赖 jar 包后,首先会查找本地仓库中是否有对应的 jar 包,有则项目直接引用,没有则会去中央仓库下载对应的 jar 包到本地仓库


中央仓库


Maven 软件中内置一个远程仓库地址就是中央仓库(实际上也是一个文件夹),服务于整个互联网,由 Maven 团队维护,全球唯一

仓库地址:https://repo1.maven.org/maven2/

我们可以把自己写好的 jar 包上传到中央仓库(具备一定要求),也可以从中央仓库下载 jar 包


查找 jar 包位置

通过访问:https://mvnrepository.com

比如查找 mysql,如下图

具体使用哪个,可以参考右边使用次数


点击该链接进去


优先选无漏洞的,选择使用相对多的


Maven 版本的选择(不严格,是推荐,基于不知道用哪个的情况,对 jar 包不熟):

  1. 选择无漏洞的
  2. 选择次新版本
  3. 选择使用人多的

点击一下链接进来


点击 Maven(目前比较火的构建工具) 里内容自动复制,然后粘贴到 pom 文件引入依赖


私有服务器(简称私服)


  • 私服:一般是由公司团队搭建的私有仓库,属于公司或者某个部门,往往需要一定权限
  • 需要询问公司账号和密码
  • 有权限的人一起使用,如果遇到私服中不存在的 jar 包,第一个下载之后,后面的人就直接从私服中获取


其它公共服务器:如阿里云、华为云、有道等


4 Maven 设置国内源


中央仓库,由于在国外,访问起来较慢,就把远程仓库改为阿里云国内源 (中央仓库镜像)

配置当前项目 setting


Maven 的配置文件以及 Maven 本地仓库地址


电脑打开 Maven 本地仓库地址,里面所有文件夹可以清空,后序刷新将会重新从中央仓库下载


修改为国内源是在 Maven 的配置文件 setting,Maven 默认配置一般是没有 setting 文件的,需要把 setting 文件复制到 Maven 配置中


  • 需要修改配置仓库地址,在 idea 用到的所有工具在创建项目时全部改为中文,以及代码常量和配置改为英文,项目地址和路径也需要英文
  • 如果路径中有中文,修改一下 Maven 本地仓库路径

修改Maven 本地仓库路径:

把 Maven 本地仓库当前路径复制下来在电脑本地上打开,复制文件中 .m2 粘贴到自己想放的地方,然后项目中重新选择路径到仓库 repository(√ 打上才能修改)


然后 Maven 的配置文件选择复制进来的 setting 文件

Maven 配置文件(码云):https://gitee.com/git-queen-wang/maven.git


配置国内源:打开 setting.xml,在 mirrors 节点上,添加如下内容

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>阿⾥云公共仓库</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

设置新项目的 setting


建议下载文本编辑器,可以使代码更加直观 


重新下载 idea 要求:

  • idea 社区版本:2021.1-2022.1.4
  • idea 专业版无要求
  • 专业版和社区版可以共存

如何删除干净 idea:

  1. 卸载程序
  2. 删除注册表:Windows + R 输入regedit 进入注册表
  3. 删除之后还有一些残留垃圾需要删除

idea 卸载参考:https://blog.csdn.net/qq_19072921/article/details/126408402


网站公告

今日签到

点亮在社区的每一天
去签到