一、介绍
https://maven.apache.org/what-is-maven.html
Maven 是Apache旗下的一个开源项目,是一款为 Java 项目构建管理、依赖管理的工具(软件),它基于项目对象模型 (Project Object Model , 简称: POM) 的概念,通过一小段描述信息来管理项目的构建、报告和文档。使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。
开源项目:https://www.apache.org/index.html#projects-list
- 软件的意思就是,Maven跟QQ、微信、游戏都是一样的,是一款软件。由此可知,软件对于我们来说,重点是使用,而不是去理解软件的核心原理,说白点,你只需要会用它就行了。
- Maven是为Java服务的
- Maven的功能:可以自动化构建、测试、打包和发布项目
总结:Maven就是一个软件,掌握软件安装、配置、以及基本功能 (项目构建、依赖管理) 使用就是本课程的主要目标!
Maven的作用:
- 方便的依赖管理
- 统一的项目结构
- 标准的项目构建流程
二、场景概念
场景1: 例如我们项目需要第三方库(依赖),如Druid连接池、MySQL数据库驱动和Jackson等。那么我们可以将需要的依赖项的信息编写到Maven工程的配置文件,Maven软件就会自动下载并复制这些依赖项到项目中,也会自动下载依赖需要的依赖!确保依赖版本正确无冲突和依赖完整!
场景2: 项目开发完成后,需要经过部署,而非SpringBoot项目我们想要将项目打成 .war
文件,并部署到服务器中运行,使用Maven软件,我们可以通过一行构建命令(mvn package)快速项目构建和打包!节省大量时间!
三、依赖管理
Maven 可以管理项目的依赖(第三方jar包),包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,而我们仅仅需要编写配置即可。
四、构建管理
我们平时写的代码叫源代码,最终我们项目如果想要运行,项目就需要打包运行代码,这个过程就叫做构建。
项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程!
我们现在是IDEA进行构建的,稍后我们会交给Maven构建,原因是因为Maven构建触发方便,可以使用命令 mvn package
、或者可视化的方式;另外还有一一个比较重要的原因,构建会有一个要求:构建的方式不同,要求的项目结构也就不同。
idea src
web
eclipse src
webcontent
maven src
webapp
由于开发工具不同,所要求的项目结构就不同,此时就会造成不统一。如果将IDEA的项目放到eclipse上面,就会造成项目无法识别的问题。原因就是因为它们构建的格式要求不同。
因此项目的构建一致选择Maven,它可以帮我们自动生成统一、标准的项目目录结构,而IDEA和Eclipse充当代码提示工具。
具体的统一结构如下:
![image-20240731105843079](https://img-blog.csdnimg.cn/img_convert/b9575b4f3a37a1904d69f86937bdb361.png)
maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式
![image-20221130140247524](https://img-blog.csdnimg.cn/img_convert/5a98f96b2570cfa468f7be5592093488.png)
如上图所示我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而Maven提供了一套简单的命令来完成项目构建。
Maven 可以管理项目的编译、测试、打包、部署等构建过程。通过实现标准的构建生命周期,Maven 可以确保每一个构建过程都遵循同样的规则和最佳实践。同时,Maven 的插件机制也使得开发者可以对构建过程进行扩展和定制。主动触发构建,只需要简单的命令操作即可。
综上所述,可以得到一个结论:Maven是一款管理和构建java项目的工具
总结,用Maven构建的好处:
- 方便触发
- 格式固定化