目录
目标3:能够在idea中使用maven,在pom.xml中设置依赖、插件
前言
有时候学习新事物会觉得迷茫,看完视频讲解真的只是看完了,这真的远远不够,所幸写博客可以让我理解的更加细致些而不至于让这阶段的时间浪费。
正文
学习目标
目标1:能够说出maven的作用,POM的概念
Maven是什么 | Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM ) | |
POM是什么 | POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。 执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。 | |
Maven的作用 | 项目构建 | 提供标准的,跨平台的自动化构建项目的方式。 |
依赖管理 | 方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题。 | |
统一开发结构 | 提供标准的,统一的项目开发结构。 | |
![]() | ||
各目录存放资源类型说明 | src/main/java | 项目java源码 |
src/main/resources | 项目的相关配置文件(比如mybatis配置,xml映射配置,自定义配置文件等) | |
src/main/webapp | web资源(比如html,css,js等) | |
src/test/java | 测试代码 | |
src/test/resources | 测试相关配置文件 | |
src/pom.xml | 项目pom文件 |
目标2:能够说出仓库,坐标的概念,完成仓库的配置
仓库
功能 用于存储资源,主要是各种jar包。 分类 本地仓库 开发者 自己电脑上存储资源的仓库,也可从远程仓库(私服,中央仓库)获取资源。 私服 各公司/部门等 小范围内存储资源的仓库,私服也可以从中央仓库获取资源。保存具有版权的资源,包含购买或自主研发的jar;
一定范围内共享资源,能做到仅对内不对外开放。
中央仓库 maven团队自身维护的仓库,属于开源的。功能 | 使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。 |
组成 | groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;org.apache.tomcat.maven) |
artifactId:定义当前资源的名称(通常是项目或模块名称,如:tomcat7-maven-plugin) | |
version:定义当前资源的版本号 | |
![]() | |
查询 | 通常可以去maven的仓库进行查询, https://mvnrepository.com/,在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标,具体步骤参考下图。 |
获取坐标
1.输入资源名称进行检索
2.点击你想要的资源进行查看
3.选择版本查看坐标
红框里包含了我们需要的信息。
1.在maven的配置文件conf/settings.xml 中可以找到本地仓库的说明 | ![]() |
2.在注释外指定本地仓库的位置 | ![]() |
3.修改中央仓库的站点为国内源。 在文件中找到 | ![]() |
目标3:能够在idea中使用maven,在pom.xml中设置依赖、插件
(1)在IDEA中配置Maven
(2)创建maven工程
(3)填写本项目的坐标
(4)查看各目录颜色标记是否正确
(5)IDEA右侧有一个maven管理界面,可点开查看
设置依赖
设置插件
在文件中找到<plugins> 然后添加新的plugin
![]()
目标4:能够说出依赖的传递方式和如何解决依赖传递冲突
依赖是指在当前项目中运行所需的jar,依赖配置的格式如下图
依赖的传递方式分两种:
(1)直接依赖:在当前项目中通过依赖配置建立的依赖关系
(2)间接依赖:被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源
注意:直接依赖和间接依赖其实也是一个相对关系
解决依赖冲突问题:
在依赖传递过程中产生了冲突,我们有三种优先法则
(1)路径优先:当依赖中出现相同资源时,层级越深,优先级越低,反之则越高
(2)声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的
(3)特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的
目标5:能够说出maven的生命周期
maven的构建生命周期描述的是一次构建过程经历了多少个事件。
我们项目最常用的一套流程如下:
当然maven的生命周期不止这一套,总共分为3套,每套里面包含的事件如下
(1)clean:清理工作
pre-clean:执行一些在clean之前的工作
clean:移除上一次构建产生的所有文件
post-clean:执行一些在clean之后立刻完成的工作
(2)default:核心工作,例如编译,测试,打包,部署等
这里面的事件非常的多,如下图
对于default生命周期,每个事件在执行之前都会将之前的所有事件依次执行一遍
(3)site:产生报告,发布站点等
pre-site:执行一些在生成站点文档之前的工作
site:生成项目的站点文档
post-site:执行一些在生成站点文档之后完成的工作,为部署做准备
site-deploy:将生成的站点文档部署到特定的服务器。
结言
要来了。