maven

maven的作用?

是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。

依赖管理

方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
统一的项目结构

提供标准、统一的项目结构
项目构建

标准跨平台(Linux,windows,macos)的自动化项目构建方式 清理、编译、测试、打包、发布

3部分

pom.xml配置文件

仓库

本地仓库

自己计算机上的一个目录

中央仓库

有maven团队维护的全球唯一的

远程仓库

私服,一般有公司团队搭建的私有仓库

maven坐标

是资源唯一标识,通过该坐标可以唯一定位资源位置

使用坐标来定义项目或引入项目中需要的依赖

naven坐标主要组成

groupId:定义当前Maven项目隶属组织名称(通常是域名反写)

artifactId:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)

version:定义当前项目版本号

依赖传递

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立依赖关系

间接依赖:被依赖的资源如何依赖其他资源,当前项目间接依赖其他资源

排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过...设置其作用范围

作用范围:

主程序范围有效(main文件夹范围内)

测试程序范围有效。(test文件夹范围内)

是否参与打包运行。(package指令范围内)

复制代码
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
<version>4.1.0</version>
<scope>test</scope>
</dependency>

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

Maven中有3套相互独立的生命周期:

clean:清理工作

default:核心工作,如:编译、测试、打包、安装、部署等。

site:生成报告、发布站点等

生命周期阶段

clean:移除上一次构建生成的文件

compile:编译项目源代码

test:使用合适的单元测试框架运行测试(junit)

package:将编译后的文件打包,如jar、war等

install:安装项目到本地仓库

注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

相关推荐
xieliyu.4 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
明夜之约5 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee5 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Jinkxs5 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
辣机小司5 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
fangdengfu1236 小时前
ES分析系统各个服务日志占用量
java·前端·elasticsearch
云烟成雨TD6 小时前
Spring AI 1.x 系列【51】可观测性技术选型
java·人工智能·spring
星越华夏6 小时前
ESP32-CAM图像传输项目说明文档
java·后端·struts·esp32
Jinkxs7 小时前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
晨曦中的暮雨8 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang