Maven基础
迪丽瓦拉
2024-05-25 21:10:01
0

Maven简介

传统项目:
jar包不统一 不兼容

项目中有部分jar包会升级 没升级的部分会起冲突 管理复杂

Maven本质是一个项目管理工具


pom

POM Project Object Model 项目对象模型
项目对象形式进行管理
先写 pom.xml 的配置文件 代表一个项目

1个项目对应1个pom.xml文件
8个项目对应8个pom.xml文件


dependency

pom使用 依赖管理dependency

本地仓库
保存公共信息
👇
私服仓库
👇
中央仓库

依赖管理的东西都来自中央仓库


Build lifecycle & phases

项目构建
构建生命周期 又叫构建阶段 通过Maven插件实现构建操作
一个构建过程包含若干插件
一个插件对应若干构建过程


插件

插件给的结果可能是jar包 也可能是源代码、帮助文档、war包、xml等
多个插件做不同的任务 产出不同的产物


Maven的作用
项目构建:标准的 跨平台的 自动化的项目构建方式
依赖管理:方便快捷得管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的、统一的项目结构


下载与安装

官方网站 https://maven.apache.org/download.cgi
请添加图片描述

请添加图片描述

Maven环境变量配置

依赖Java 需要配置JAVA_HOME
设置MAVEN自身运行环境 需要配置MAVEN_HOME

//配置仓库位置
请添加图片描述
settings.xml中
//本地仓库位置
在这里插入图片描述
//配置镜像仓库
在这里插入图片描述
全局setting与用户setting
公共配置
用户配置
在这里插入图片描述
在这里插入图片描述

第一个Maven项目(手工)
pom.xml文件格式


4.0.0

compile时生成target文件
clean时删除target

idea创建Maven工程

依赖传递
依赖具有传递性
直接依赖
间接依赖

依赖冲突
路径优先 层级越浅 优先级越高
声明优先 相同层级 配置顺序靠前覆盖靠后的
特殊优先 同级配置相同资源

请添加图片描述
可选依赖
控制别人能不能看到自己


true//为true时 被依赖时 不被知道我依赖了这个项目(有点类似私有) 但是只能可选自己项目的 子项目的依赖不能可选化 有此需求时 **排除依赖**

排除依赖
主动断开以来资源 被排除的资源无需指定版本
即自己的项目的子项目有不想要的依赖 使用排除依赖排除
控制自己不看别人




///要排除的坐标



依赖范围
主程序范围有效(main 范围内)
测试程序范围有效(test文件夹范围内)
是否参与打包(package指定范围内)

scope主代码测试代码打包(上线编程)范例
compile(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYjdbc

依赖范围具有传递性

生命周期
clean:清理工作
default:核心工作 例如编译测试打包部署等
site:产生报告 发布站点等

clean
pre-clean
clean
post-clean

default
compile test-compile test package install等

site
pre-site
site
post-site
site-deploy

插件
插件与生命周期内的阶段绑定 执行到生命周期的阶段时 其实就是执行插件
默认maven会设定预设功能
通过插件可以自定义其他功能

生命周期 :是几岁
插件:那一岁的时候干了什么事

相关内容