SpringBoot Maven的操作与配置图文教程

 更新时间:2025年10月31日 11:47:35   作者:朝新_  
Spring Boot开发中,将项目打包为可执行JAR是部署到生产环境的关键步骤,这篇文章主要介绍了SpringBoot Maven操作与配置的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

Maven

Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包;

(一)创建一个Maven项目

IDEA本身已经集成了Maven,我们可以直接使用,无需安装
以下截图的idea版本为:2021.3.2,不同版本的 idea 界面展示会有所不同
File -> New-> Project

我们在运行代码时,会自动添加一个 target 包,这个包存放的是我们编译生成的代码:

clean 操作,就可以把生成的 target 包清除

package是打包的意思,打包就是把所有的class文件,全部放在一起,打成jar包或者war包

  • jar包 和 war包 都是一种压缩文件
  • jar 包就是把开发人员已经写好的一些代码进行打包,打好的 jar 包就可以引入到其他项目中,也可以直接使用这些 jar 包中的类和属性,另外也可以打成可执行 jar 包,这样的包就可以通过 java -jar 命令来执行
  • war包可以理解为是一个web项目,里面是项目的所有东西,通常用于网站.

去Maven商店下载对应的驱动包

打开Maven商店

在依赖中引入本地下载的jar包

(二)Maven Help 插件

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

(三)Maven依赖管理

依赖配置

依赖:指当前项目运行所需要的jar包;
比如前面学习 JDBC 时,我们需要手动下载 mysql-connector-java 的包,并且添加到项目中;如果使用Maven,我们只需要在 pom.xml 中引入 mysql-connector-java 的依赖即可:

  • ① 在pom文件dependencies标签内,添加依赖坐标

  • ② 点击Maven刷新按钮,引入新加入的依赖jar包

依赖传递

早期我们没有使用 maven 时,向项目中添加依赖的 jar 包,需要把所有的 jar 包都复制到项目工程下

但现在使用 maven 的话,就可以避免管理所需依赖的关系。我们只需要在 pom 文件中,定义直接依赖就可以了,由于 maven 的依赖具有传递性,所以会自动把所依赖的其他 jar 包也一起导入;比如吃火锅,现在我们可以点一个海底捞外卖,直接就把所有食材都送过来了,包括什么锅,配什么菜比如去医院看病,借助 “互联网”,实现了信息共享,只需要带上身份证,以往的病历和检查结果就都可以看到了.

如上图,对于不同版本的 jar 包,默认生效最近距离的版本,如左右分支都有 jar C,默认先生效右分支的;

项目A通过 Maven 引入 JarA 时,会自动引入 JarB 和 Jar C;

JarA 和 项目B 就是 项目A 的直接依赖;JarB,Jar C 是间接依赖;

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

我们打开依赖分析器,查看依赖之间的树状视图,我们可以发现,在导入 connector-j 包时,也会自动导入 protobuf 这个包,protobuf 是 connector-j 的直接依赖:

依赖排除

如果我们在 MavenDemo 项目中,不再需要某个jar包,就可以进行排除

进行依赖排除之前,可能需要下配置好对应的setting中的镜像节点

我们可以手动添加标签,对不需要的依赖进行排除

此时,要排除的依赖中不需要写版本号,只需要写 groupId 和 artifactId:

可以先写 artifactId,idea 会自动生成 groupId:

(四)Maven仓库

这个代码,我们称之为"坐标",坐标是唯一的;

在Maven中,根据groupId、artifactId、version的配置,来唯一识别一个jar包,缺一不可.

当我们在pom文件中配置完依赖之后,点击刷新,Maven会根据坐标的配置,去仓库里寻找Jar包,并把他下载下来,添加到项目中;这个Jar包下载的地方就称为仓库;

仓库:用于存储资源,管理各种jar包

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

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

本地仓库

本地仓库:自己计算机上的一个目录(用来存储jar包)

当项目中引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包

  • 如果有,则在项目直接引用
  • 如果没有,则去到中央仓库中下载对应的 jar 包到本地仓库

中央仓库

中央仓库: maven软件中内置一个远程仓库地址,就是中央仓库,服务于整个互联网;

由Maven 团队维护,全球唯一.

仓库地址

可以通过https://mvnrepository.com 这个网站来查询并下载;

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

  1. 访问 https://mvnrepository.com/
  2. 进行查找, 比如mysql

粘贴到依赖中,如果代码显示红色,则只需要点击刷新,会自动下载好 jar 包,并且会在本地仓库的,目录中查找到下载好的 jar 包

私有服务器

当Maven需要下载资源的时候

  1. 先从本地仓库获取,本地仓库存在,则直接返回
  2. 如果本地仓库没有,就从私服请求,私服存在该资源,就直接返回
  3. 如果私服上不存在该资源,则从中央仓库下载,中央仓库不存在,就报错了…
  4. 如果中央仓库中存在,就先缓存在私服上之后,再缓存到本地仓库里,再为Maven的下载请求,提供服务;
  5. 私服是很多人在使用的,所以只需要第一个使用者下载一次就可以了

(五)配置国内源

配置项目setting

总结 

到此这篇关于SpringBoot Maven的操作与配置的文章就介绍到这了,更多相关SpringBoot Maven操作与配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Security OAuth 自定义授权方式实现手机验证码

    Spring Security OAuth 自定义授权方式实现手机验证码

    这篇文章主要介绍了Spring Security OAuth 自定义授权方式实现手机验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 解决eclipse中console控制选项不见了的方法

    解决eclipse中console控制选项不见了的方法

    eclipse是一款用于编译java语言的程序,利用这款软件我们可以制作很多有趣的小程序,也可以制作一些大型的软件项目,有的用户在使用eclipse的时候会遇到console消失的情况,所以本文给大家介绍了解决eclipse中console控制选项不见了的方法,需要的朋友可以参考下
    2024-03-03
  • Jmeter如何基于命令行运行jmx脚本

    Jmeter如何基于命令行运行jmx脚本

    这篇文章主要介绍了Jmeter如何基于命令行运行jmx脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 详解Java线程-守护线程与用户线程

    详解Java线程-守护线程与用户线程

    这篇文章主要介绍了Java守护线程与用户线程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java可变参数列表详解

    Java可变参数列表详解

    这篇文章主要介绍了Java可变参数列表详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • web中拖拽排序和java后台交互实现方法示例

    web中拖拽排序和java后台交互实现方法示例

    这篇文章主要给大家介绍了关于web中拖拽排序和java后台交互实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 详解Java程序并发的Wait-Notify机制

    详解Java程序并发的Wait-Notify机制

    这篇文章主要介绍了详解Java程序并发的Wait-Notify机制,多线程并发是Java编程中的重要部分,需要的朋友可以参考下
    2015-07-07
  • Java并发编程最佳实践之构建高并发、可伸缩的应用实例

    Java并发编程最佳实践之构建高并发、可伸缩的应用实例

    Java并发编程是Java语言中最为复杂且核心的高级特性之一,其本质在于如何在多线程环境下高效、安全、可预测地协调多个执行单元对共享资源的访问与协作,这篇文章主要介绍了Java并发编程最佳实践之构建高并发、可伸缩的应用实例,需要的朋友可以参考下
    2026-04-04
  • mybatis Mapper的xml文件中resultType值的使用说明

    mybatis Mapper的xml文件中resultType值的使用说明

    这篇文章主要介绍了mybatis Mapper的xml文件中resultType值的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java的动态代理和静态代理及反射常用API详解

    Java的动态代理和静态代理及反射常用API详解

    这篇文章主要介绍了Java的动态代理和静态代理及反射常用API详解,动态代理是一种在运行时动态生成代理对象的技术,它是一种设计模式,用于在不修改原始对象的情况下,通过代理对象来间接访问原始对象,并在访问前后执行额外的操作,需要的朋友可以参考下
    2024-01-01

最新评论