后端开发Web

Maven

Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具

Maven的作用

依赖管理

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

统一项目结构

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

项目构建

标准跨平台(Linux、Windows、MacOs)的自动化项目构建方式

介绍

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

仓库:用于存储资源,管理各种jar包

本地仓库:自己计算机上的一个目录

中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2

远程仓库(私服):一般由公司团队搭建的私有仓库

安装

IDEA集成Maven

创建Maven项目

Maven坐标

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

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

Maven 坐标主要组成

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)

artifầctid:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
version:定义当前项目版本号

<groupld>com.itheima</groupld>

<artifactld>maven-project01</artifactld>

<version>1.0-SNAPSHOT</version>

<dependency>

<groupld>ch.qos.logback</groupld>

<artifactld>logback-classic</artifactild>

<version>1.2.3</version>

</dependency>

导入Maven项目

方式一

方式二

依赖管理

依赖配置

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

蓝色部分的信息是用来描述当前项目的,如果要添加当前项目所要运行时依赖的资源,就要在下面声明一个标签dependencies

groupId:组织名 artifactId:模块名

点击该按钮才能在后面面板中添加依赖

注意事项:

如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程会比较耗时,耐心等待

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

依赖传递

依赖具有传递性

排除依赖

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

依赖范围

生命周期

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

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

●clean:清理工作

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

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

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

阶段运行是有先后顺序的,先运行前面阶段,再运行后面阶段,而后面的阶段是需要依赖前面阶段的,也就是说在同一套生命周期中,运行后面的项目阶段前面的也会运行

都是由Maven中的插件完成的

相关推荐
女王大人万岁22 分钟前
Go语言time库核心用法与实战避坑
服务器·开发语言·后端·golang
J_liaty34 分钟前
Spring Boot + MinIO 文件上传工具类
java·spring boot·后端·minio
短剑重铸之日41 分钟前
《SpringCloud实用版》Stream + RocketMQ 实现可靠消息 & 事务消息
后端·rocketmq·springcloud·消息中间件·事务消息
没有bug.的程序员44 分钟前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
LuminescenceJ1 小时前
GoEdge 开源CDN 架构设计与工作原理分析
分布式·后端·网络协议·网络安全·rpc·开源·信息与通信
Tony Bai1 小时前
【分布式系统】11 理论的试金石:用 Go 从零实现一个迷你 Raft 共识
开发语言·后端·golang
短剑重铸之日2 小时前
《SpringCloud实用版》统一认证授权:Spring Authorization Server + OAuth2 + JWT 生产级方案
java·后端·spring·jwt·oauth2
浮尘笔记2 小时前
Go语言并发安全字典:sync.Map的使用与实现
开发语言·后端·golang
淡泊if2 小时前
RESTful API设计标准:单体 vs 微服务的最佳实践
后端·微服务·restful
金牌归来发现妻女流落街头2 小时前
【Spring Boot注解】
后端·springboot