当前位置: 首页 > article >正文

SpringBoot入门准备——Maven的使用

一、什么是Maven

1.1 Maven的概念

Maven是⼀个项目管理工具。基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。(通过pom.xml文件的配置获取jar包,而不用手动去添加jar包) 


 1.2 Maven的用处

Maven可以提高开发效率,减少开发Bug,在我们学习SpringBoot的过程中,Maven主要用来进行项目构建以及管理依赖


二、如何创建Maven项目

创建Maven项目之前,要先了解自己的idea类型,如果是社区版,版本必须在2022.1.4之前,jdk的版本要在17之前

接下来开始创建一个Maven项目:
1.点击close project关闭当前项目

对于社区版如果不先关闭当前项目,直接New一个Maven项目可能会出现卡死的情况。

2.点击New Project

3.选择Maven(平是时我们写代码选择的都是IntelliJ),然后点击Create创建项目即可

创建的Maven项目和IntelliJ一样,可以正常的编写代码,只是多了一些功能而已。


三、Maven 的核心功能

Maven的核心功能主要体现在两个方面,分别是项目构建和管理依赖。

3.1 项目构建

Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的自动化项目构建方式  当我们开发了一个项目之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进行, 就显得特别麻烦, 而Maven 给我们提供了 一套简单的命令来完成项目的构建.

例如:

1.点击右上角的Maven就会出现下图的界面,点击package就会自动完成打包过程

2.当最后几行出现BUILD SUCESS字样的时候表示打包成功

!!! 打包的意思就是将所有的class文件放到一起,形成一个jar包或者war包。


3.2 管理依赖

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

pom.xml 就是Maven的配置文件。

3.2.1 依赖配置

依赖:当前项目运行所需要的jar包

如前面学习JDBC时,我们需要手动下载mysql-connector-java的包.并且添加到项目中,但是如果使⽤Maven, 我们只需要在pom.xml中引入mysql-connector-java的依赖就可以了 。

1.在pom.xml文件中dependencies标签内添加依赖坐标。

2.点击刷新按钮,引入新加入的依赖

!!!注意:对pom.xml文件的每一次修改都需要刷新

3.

在上图中可以看到,我们只引入了mysql的依赖,但是却添加了两个依赖,这就是依赖传递


3.2.2 依赖传递

不使用maven时, 向项目中添加依赖的jar包,需要把所有的jar包都复制到项目工程下( 比如 A 依赖B, B依赖C, 那么 A项目引入 B 的同时,也需要引入C, 如果我们手动管理这个依赖, 这个过程就会比较麻烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的)

但是如果使用了Maven,就不需要管理jar包之间的依赖关系,Maven会将具有依赖关系的包一并引入

在上图中,项目A引入jarA时,Maven会自动引入jarB和jarC。


3.2.3 依赖排除

如果项目A不需要jarB,也可以将jarB删除。


四、Maven Help插件

Maven Help插件的作用是查看jar包之间的依赖关系,也可以删除依赖。

一、下载

1.点击file->settings->plugins

2.点击Marketplace,再搜索maven helper,点击Install即可(如果已下载,显示的就是Installed)

3.下载完成后,会出现如下情况

二、使用

1.点击Dependency Analyzer

2.观察项目的依赖

这个就是mysql的依赖,如果当前项目不需要这个依赖的话,可以右键删除,如:


http://www.kler.cn/a/406569.html

相关文章:

  • PHP 高并发解决方案
  • YOLOV5/rknn生成可执行文件部署在RK3568上
  • Vscode写markdown快速插入python代码
  • 网络安全-企业环境渗透2-wordpress任意文件读FFmpeg任意文件读
  • HarmonyOS笔记5:ArkUI框架的Navigation导航组件
  • 【数据库入门】关系型数据库入门及SQL语句的编写
  • Web3与智能合约:区块链技术下的数字信任体系
  • Python世界:力扣题解875,珂珂爱吃香蕉,中等
  • Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)
  • uniapp跨域问题解决方案
  • 博客文章怎么设计分类与标签
  • Java SE 与 Java EE:基础与进阶的探索之旅
  • PAL(Program-Aided Language Model)
  • android 使用MediaPlayer实现音乐播放--获取音乐数据
  • Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE
  • Linux云平台Oracle 12c安装与数据迁移
  • 大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
  • el-tree扩展vue-easy-tree虚拟树的使用(解决页面卡顿)
  • 力扣 LeetCode 701. 二叉搜索树中的插入操作(Day10:二叉树)
  • wpf 事件转命令的方式
  • 【微服务】Spring AI 使用详解
  • [模版总结] - 树的基本算法4 -最近公共祖先 LCA
  • python语言基础
  • C/C++基础知识复习(26)
  • 【遵守孤儿规则的External trait pattern】
  • Python 爬虫 (1)基础 | 基础操作