导图社区 Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具
编辑于2022-09-26 20:56:08 四川省listener 音标['lisnә] 读音 汉语翻译 n. 收听者, 听众 英语解释: 名词listener: someone who listens attentively 同义词:hearer, auditor, attender
Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。 1、Filter快速入门 1.1、步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方法 d...
会话的解释 [conversation] 指两人以上的对话(多用于学习别种语言或方言时) 详细解释 (1).聚谈;对话。现多用于学习别种语言或方言时
社区模板帮助中心,点此进入>>
listener 音标['lisnә] 读音 汉语翻译 n. 收听者, 听众 英语解释: 名词listener: someone who listens attentively 同义词:hearer, auditor, attender
Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。 1、Filter快速入门 1.1、步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方法 d...
会话的解释 [conversation] 指两人以上的对话(多用于学习别种语言或方言时) 详细解释 (1).聚谈;对话。现多用于学习别种语言或方言时
Maven
介绍
传统项目管理
jar包不统一,jar不兼容
工程升级维护过程操作繁琐
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM(Project Object Model)
Maven是用Java语言编写的。他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,而这个对象叫做POM(project object model),即项目对象模型
Maven需要编写一个pom.xml文件,Maven通过加载这个配置文件就可以知道项目的相关信息了!Maven离不开一个叫pom.xml的文件。因为这个文件代表就一个项目。
作用
依赖管理
方便快捷的管理项目依赖的资源(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文件
下载安装
链接
官网
http://maven.apache.org/
下载
http://maven.apache.org/download.cgi
安装
Windows
maven解压即安装,将下载apache-maven-x.x.x-bin.zip直接解压到目标盘根目录下即可
目录结构
bin
可执行程序目录
boot
maven自身的启动加载器
conf
maven配置文件的存放目录
lib
maven运行所需库的存放目录
环境配置
我的电脑-------->属性--------->高级系统设置
新建系统变量:MAVEN_HOME+安装目录
新建path:%MAVEN_HOME%\bin
测试
DOS命令窗口
mvn -v
如果能够看到输出的maven的版本信息代表配置成功
基础概念
仓库
用于存储资源,包含各种jar包
分类
本地仓库
自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库
非本机电脑上的仓库,为本地仓库提供资源
分类
中央仓库
Maven团队维护,存储所有资源的仓库
https://repo1.maven.org/maven2/
私服
部门/公司范围内存储资源的仓库,从中央仓库获取资源
作用
保存具有版权的资源,包含购买或自主研发的jar
一定范围内共享资源,能做到仅对内不对外开放
本地仓库设置
Maven启动后,会自动保存下载的资源到本地仓库
默认位置
在系统盘当前用户目录下的.m2/repository,比如当前的系统用户是zs,则默认的本地仓库仓库位置在C:\Users\zs\.m2\repository
自定义位置
在maven的配置文件conf/settings.xml中修改
在仓库的同级目录即D:\maven\repository也要包含一个settings.xml配置文件,在里面也要进行指定
补充
全局setting与用户setting
全局setting定义了当前计算机中Maven公共配置
用户setting定义了当前用户的配置
局部用户配置优先与全局配置(遇见相同配置项的时候)
推荐两者设置保持一致
默认连接的远程仓库
pom-4.0.0.xml文件中
国内站点镜像
作用
加速下载资源
配置
conf/settings.xml配置文件中找到<mirrors>标签
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
坐标
介绍
Maven中的坐标用于描述仓库中资源的位置
作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
组成
groupld
定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactld
定义当前Maven项目名称(通常是模块名称,例如CRM,SMS)
version
定义当前项目版本号
release
完成版
snapshot
开发版
补充
packaging
定义资源的打包方式,取值一般有如下三种
jar
该资源打成jar包,默认是jar
Java工程打包成jar
war
该资源打成war包
web工程打包成war
pom
该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构
仓库查询资源坐标
网站
https://mvnrepository.com/
步骤
输入资源名称进行检索
点击目标资源进行查看
选择版本查看坐标
项目构建
工程目录结构
Java
JavaWeb
对比
常用命令
mvn:clean
清除编译
mvn:compile
编译
mvn:test
测试
mvn:package
打包
mvn:install
安装到本地仓库
手动搭建
IDEA搭建
依赖管理
介绍
依赖是指在当前项目中运行所需的jar
依赖配置
依赖传递
分类
直接依赖
在当前项目中通过依赖配置建立的依赖关系
间接依赖
被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源
注意
直接依赖和间接依赖其实也是一个相对关系
冲突问题
路径优先
当依赖中出现相同资源时,层级越深,优先级越低,反之则越高
声明优先
当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的
特殊优先
当同级配置了相同资源的不同版本时,后配置的覆盖先配置的
可选依赖
可选依赖指对外隐藏当前所依赖的资源-不透明
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本-不需要
依赖范围
介绍
依赖的jar默认情况可以在任何地方可用,可以通过scope标签设定其作用范围
作用范围分类
主程序范围有效
src/main目录范围内
测试程序范围有效
src/test目录范围内
是否参与打包
package指令范围内
scope标签
取值
compile,test,provided,runtime
对应情况
依赖范围的传递性
例子
项目1配置compile,项目2配置runtime,最终即runtime
生命周期
介绍
maven的构建生命周期描述的是一次构建过程经历了多少个事件
项目常用流程
Maven生命周期
clean
用途
清理工作
事件
pre-clean
执行一些在clean之前的工作
clean
移除上一次构建产生的所有文件
post-clean
执行一些在clean之后立刻完成的工作
default
用途
核心工作,例如编译,测试,打包,部署等
事件
注意
对于default生命周期,每个事件在执行之前都会将之前的所有事件依次执行一遍
site
用途
产生报告,发布站点
事件
pre-site
执行一些需要在生成站点文档之前完成的工作
site
生成项目的站点文档
post-site
执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy
將生成的站点文档部署到特定的服务器上
插件
介绍
maven生命周期中的相关事件,这些事件是maven的插件来执行的
特点
插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件
maven默认在各个生命周期上都绑定了预先设定的插件来完成相应功能
插件还可以完成一些自定义功能
官网插件介绍
http://maven.apache.org/plugins/index.html
配置方式
主题