什么是Maven

Maven是一款采用纯Java编写的开源项目管理工具,采用ProjectObjectModel(POM)概念管理项目配置。它能自动构建项目,管理项目的整个生命周期,包括清除、编译、测试、报告、打包、部署等。Maven遵循约定优于配置的理念,简化软件项目管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是Maven?

Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中…
Maven是一款跨平台的项目管理工具,是一个开源的项目…

Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理…

POM怎么理解呢???

我们使用Java是面向对象编程,对象就是我们的类
而Maven是面向项目,把我们的项目看做成是一个对象来进行管理

2.为什么要使用Maven??
在没有使用Maven之前,我们的jar包是不是非常杂乱???看一下我存放jar包的地方
在没有学习Maven之前,我还想过把这些jar包一一整理出来,万一硬盘坏了,那我的jar包又要去重新找了…而且由于jar包版本的问题,已经吃过不少亏…这就需要大量时间去整理jar包了…

曾经想手动打jar包,结果Intellij idea好像不太支持这种功能??【我还没找到】…于是只能依靠原生的jar 命令去打jar包了,过了一阵子,想重新打jar包的时候,又忘记命令了…非常苦恼…

而我们的Maven就非常好地解决了上面这两种情况了,当然了,Maven的功能并不是只有这么一丢丢,我只是举了两个小例子而已…随着我们的学习,你将会看到Maven的强大之处…

Maven可以管理项目的整个声明周期,包括清除、编译,测试,报告、打包、部署等等。

自动构建项目

软件开发: 可行性分析、需求分析、软件设计、软件开发、发布、运维
软件构建: 软件已经开发完毕,需要构建成一个产品进行发布
构建步骤:

清除–> 编译–>测试–>报告–>打包(jarwar)–>安装–>部署到远程 maven可以通过一个命令实现自动构建软件项目
Maven拥有“约定优于配置“这么一个理念,也就是说,把一些规范约定下来,人们就这么用!如果我们事先约定好所有项目的目录结构,标准开发过程(编译,测试) , 所有人都遵循这个约定。软件项目的管理就会变得简单很多。比如:如何过马路(红灯停绿灯行),如何开门,关门等。

3.安装maven
下载maven --配置环境变量(mvn -v/version测试是否配置成功)–设置setting文件,在我们Maven中,有本地仓库这么一个概念,我们可以在settings.xml配置文件中修改本地仓库的位置 自己新建一个repository的文件夹 例如:在setting文件55行 D:\My_Java\springboot\Maven\repository
然后在133行设置:

mavenpro
admin
admin


然后在idea中配置maven setting–搜索maven 配置下载的maven文件的setting路径,本地仓库的路径自动匹配
就差不多了配置完了

4.Maven目录
1.bin:含有mvn运行的脚本
2.boot:含有plexus-classworlds类加载器框架
3.conf:含有settings.xml配置文件
4.lib:含有Maven运行时所需要的java类库
5.Settings.xml 中默认的用户库: ${user.home}/.m2/repository[通过maven下载的jar包都会存储到指定的个人仓库中]
6.Maven默认仓库下载地址在: maven的lib目录下maven-model-builder-3.0.4.jar的pom.xml中

5.仓库
本地仓库

Maven会把我们项目所构建出来的jar包等等资源存放在本地仓库中。当我们需要jar包的时候,Maven第一时间也是去本地仓库中寻找jar包(就是在setting中配置的那个路径);

私有服务器

存储一些jar包的服务器,由于本地仓库不可能拥有大部分的jar包,一个团队要去开发,免不了总是去中心仓库下载,这就非常耗费时间了。如果私有服务器拥有这些jar包,那么每台电脑就不用去中心仓库中下载了…

中心仓库:

当Maven在本地仓库和私服找不到我们需要的jar包的时候,就去中心仓库中帮我们下载对应的jar包。那Maven怎么知道去哪里下载呢??其实Maven已经配置好的了

5.Maven生命周期的理解:(详情请参考:https://www.cnblogs.com/EasonJim/p/6816340.html)

二、构建生命周期是由阶段组成的:

这些构建生命周期中的每一个由构建阶段的不同列表定义,其中构建阶段表示生命周期中的阶段。

例如,默认(default)的生命周期包括以下阶段(注意:这里是简化的阶段,用于生命周期阶段的完整列表,请参阅下方生命周期参考):

验证(validate) - 验证项目是否正确,所有必要的信息可用
编译(compile) - 编译项目的源代码
测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署
打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。
验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准
安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项
部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享

6.maven坐标
坐标的组成: groupId + artifactId+ version

groupId:组id ,机构名,公司名:好比公司的id,或者是公司包名
artifactId:构建物id ,产品名或者产品的id
version :版本号
jar包组成:
artifactId-version.jar
test/compile
test/compile的区别: :依赖的jar包必须是 compile 范围,假如是test范围,则发布的jar包不会包含test范围依赖的jar包,和依赖关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值