活动地址:CSDN21天学习挑战赛
作者:进击攻城狮
个人主页:欢迎访问我的主页
首发时间:2022年8月2日星期二
订阅专栏:Maven
个人信条:星光不问赶路人,岁月不负有心人。
如果文章有错误,欢迎在评论区指正。
支持我:点赞+收藏⭐️+留言
Apache Maven是一个项目管理工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
项目构建:
项目构建包括清理,···,编译,测试,报告,打包,部署···等步骤
理想的项目构建
高度自动化,跨平台,可重用的组件,标准化
传统方式管理jar包依赖的问题:
使用maven方式管理jar包依赖的好处:
POM(Project Object Model)项目对象模型,一个项目所有的配置都放在POM文件中:定义项目的类型、名字、管理依赖关系,定制插件的行为等等。
Maven通过pom.xml文件来管理依赖和管理项目的构建生命周期,而项目构建的生命周期是依靠一个个的插件完成的。
Maven管理资源的位置。仓库里面包含依赖(jar包)和插件(plug-in)。Maven仓库分为本地仓库和远程仓库,而远程仓库又包括私服和中央仓库。
Maven仓库
----本地仓库
----远程仓库
--------私服
--------中央仓库
--------其他公共库
用户自己电脑上的仓库,直接从本地获取。
私服是一种特殊的远程仓库,搭建在局域网内的仓库,私服代理广域网的仓库,提供给局域网内的用户使用,可用减少局域网内的用户与外界仓库的传输,每一个jar包只需要拉取一次就可以提供给局域网内所有的用户使用,并且也更加稳定。
Maven官方提供的远程仓库,里面拥有最全的jar包资源,Maven首先从本地仓库中寻找项目所需的jar包,若本地仓库没有,再到Maven的中央仓库下载所需jar包。
在Maven中,坐标是jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的jar包。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<version>2.1.6.RELEASEversion>
dependency>
groupId:公司或组织域名倒序
artifactId:模块名
version:版本号
packaging:项目的打包方式(pom/jar/war,默认jar)
groupId、artifactId、versioin简称GAV(Maven坐标),是用来唯一标识jar包的。
1.什么是继承?
在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可。
2.继承的作用,为了简化pom.xml配置,简化groupId,artifactId, version ,还可以锁定子工程依赖版本。
如何实现继承?
父pom配置:将需要继承的Jar包的坐标放入标签即可。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>28.0-jreversion>
dependency>
dependencies>
dependencyManagement>
子pom配置:
<parent>
<groupId>父pom所在项目的groupIdgroupId>
<artifactId>父pom所在项目的artifactIdartifactId>
<version>父pom所在项目的版本号version>
parent>
Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:
**① Clean Lifecycle 在进行真正的构建之前进行一些清理工作。 **Clean生命周期一共包含了三个阶段:
② Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
③ Site Lifecycle 生成项目报告,站点,发布站点。
-v:查询Maven版本
本命令用于检查maven是否安装成功。
Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。
compile:编译
将java源文件编译成class文件
test:测试项目
执行test目录下的测试用例
package:打包
将项目打成jar包
clean:删除target文件夹
install:安装
将当前项目放到Maven的本地仓库中。供其他项目使用
1 学如逆水行舟,不进则退