《JavaWeb篇》03.Maven看这一篇就够了
陈老老老板
说明:在整体的复习一遍知识,边复习边总结,基础真的重要,需要注意的地方都标红了,还有资源的分享. 一起加油。
1.Maven简介
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM (Project Object ):项目对象模型
Maven的作用:
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
2.Maven基础概念
仓库:用于存储资源,包含各种jar包
仓库分类:本地仓库和远程仓库(私服和中央仓库)
坐标:Maven中的坐标用于描述仓库中资源的位置
坐标的主要组成:
groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
artifactId:定义当前Maven项目名称(通常是模块名称)
version:定义当前版本号
packaging:定义该项目的打包方式
坐标的作用:使用唯一的标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载交由机器完成。
仓库配置:
本地仓库配置:默认位置与自定义位置
远程仓库配置:
镜像仓库配置:
3.Maven项目
手动生成Maven项目
Maven工程目录结构
Maven项目构建命令
Maven构建命令使用mvn开头,后面加功能参数,可以一次执行多个命令,使用空格分隔
IDEA生成Maven项目
使用原型创建Maven项目与不使用原型创建Maven项目
例:使用原型创建web项目,选择archetype-webapp进行项目创建,添加Tomcat插件
4.依赖管理
-
依赖配置
依赖指的是当前项目运行所需要的jar,一个项目可以设置多个依赖
格式: -
依赖传递
依赖具有传递性,包括直接传递和间接传递。
直接传递:在当前项目中通过依赖配置建立的依赖关系(A使用B,A和B就是直接传递)
间接传递:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源(比较拗口,意思是如果A依赖B,而B依赖C,那么A和C之间就是间接传递)依赖传递的冲突问题:路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
-
可选依赖
可选依赖指的是对外隐藏当前所依赖的资源
-
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
-
依赖范围
依赖的jar包默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围:
主程序范围有效(main文件夹范围内)
测试程序范围有效(test文件夹范围内)
是否参与打包(package文件夹范围内)
5.生命周期与插件
Maven项目构建生命周期描述的是一次构建过程经历了多少个事件
Maven对项目构建的生命周期划分为3套
clean:清理工作
default:核心工作,例如编译、测试、打包、部署等
compile – test-compile – test – packege – Install
site:产生报告,发布站点等
插件:
插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件功能
6.分模块开发与设计
参考视频进行实验即可
(1)聚合
作用:聚合用于快速构建Maven工程,一次性构建多个项目/模块。
制作方式:创建一个空模块,打包类型定义为pom
定义当前模块进行构建操作时关联的其他模块名称
注意:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
(2)继承
作用:通过继承可以实现在子工程中沿用父工程中的配置(与Java类似)
制作方式:在子工程中生命其父工程坐标与对应的位置
在父工程中定义依赖管理
继承依赖使用:在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本
(3)继承与聚合
作用:聚合用于快速构建项目,继承用于快速配置
相同点:
聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容
不同点:聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
(4)属性
-
自定义属性
作用:等同于定义变量,方便统一维护
定义格式:调用格式:
-
内置属性
作用:使用Maven内置属性,快速配置
调用格式: -
Setting属性
作用:使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式: -
Java系统属性
作用:读取Java系统属性
调用格式:系统属性查询方式:
-
环境变量属性
作用:使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式:环境变量属性查询方式:
7.版本管理
SNAPSHOT(快照版本) RELEASE(发布版本)
工程版本号约定
8.资源配置
配置文件引用pom属性
作用:在任意配置文件中加载pom文件中定义的属性
调用格式
开启配置文件加载pom属性
9.多环境开发配置
10.私服
(1)使用Nexus,进入安装目录点击nuxus.exe,正常是会出现命令窗口,也有可能直接闪退,闪退的可以看一下任务管理器,只要开启就没问题。
(2)运行之后,在浏览器输入localhost:8081 进入nexus页面,点击右上角进行登录,输入name,创建成功。
初始用户名是admin,密码是nexus\sonatype-work\nexus3中admin.password文件复制粘贴即可。
(3)点齿轮设置,在点repositories,进行创建repository,选择maven2(hosted)
(3)回到创建页面,点击maven-public,将新创建的仓库添加到public中。点击save完成。
(4)在自己的maven的setting.xml中进行设置server与mirror。
server:
mirror:
(5)最后再idea项目pom.xml中添加配置
补充
11.IDEA导入Maven项目
(1)选择右侧Maven面板,点击 + 号
(2)选中对应项目的pom.xml文件,双击即可
(3)如果没有Maven面板,选择
View --> Appearance --> Tool Window Bars
12.使用配置 Maven-Helper 插件
(1)选择 IDEA中 File --> Settings
(2)选择 Plugins
(3)搜索 Maven,选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept
(4)重启 IDEA
安装完该插件后可以通过 选中项目右键进行相关命令操作,如下图所示:
总结:一句话,Maven使jar包的导入更加简单,希望对您有帮助。
结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
- 点赞
- 收藏
- 关注作者
评论(0)