Maven

Maven

简介:

Maven 是一个主要用于 Java 项目的管理工具。

它有以下主要特点:

1.依赖管理:自动下载和管理项目所需的依赖库(jar包),解决依赖冲突,实现依赖传递。

2.提供标准统一的项目结构,使得代码可以在不同的开发工具之间移植。

Maven的模型

通过各种插件完成对Maven标准化的构建

Maven的仓库:

本地仓库在安装Maven时可以自己指定

当安装库时首先在本地仓库中查找,如果没有则从中央仓库进行下载,然后再从本地仓库进行链接。

由于中央仓库在外网进行维护,所以引入了私服。

通过私服对中央仓库的资源进行下载。而在企业级开发中,只要一个用户进行下载,就会在本地中留下其用到的jar包资源,提高开发效率。

Maven的安装和配置

IDEA 集成MAVEN

1.在项目中配置

2.配置全局参数

创建Maven项目

Maven的坐标

在 Maven 中,坐标(coordinate)用于唯一标识一个项目或依赖项。它由三个主要部分组成:groupId、artifactId 和 version。

一、groupId

定义

通常是项目的组织或团体的唯一标识符,类似于 Java 的包名结构。它一般采用反向域名的形式,例如 org.springframework。

作用

用于区分不同的项目组织或团体开发的项目。当多个项目使用 Maven 进行管理时,groupId 可以确保不同组织的项目不会发生冲突。

二、artifactId

定义

是项目的唯一名称,在同一个 groupId 下必须是唯一的。例如,对于 Spring Framework 项目,artifactId 可能是 spring-core。

作用

具体标识一个项目或模块。在 Maven 的仓库中,通过 groupId 和 artifactId 的组合可以准确地找到特定的项目或依赖项。

三、version

定义

表示项目或依赖项的版本号。版本号通常采用语义化版本控制的格式,例如 2.0.0。

作用

用于区分项目的不同版本。在项目的开发过程中,可能会有多个版本发布,版本号可以帮助开发者明确使用的是哪个具体版本的项目或依赖项。

例如,对于 Spring Framework 的核心模块,其 Maven 坐标可能是 org.springframework:spring-core:5.3.23,其中 org.springframework 是 groupId,spring-core 是 artifactId,5.3.23 是 version。

通过 Maven 坐标,开发者可以方便地在项目中引入所需的依赖项,并且 Maven 会自动从指定的仓库中下载并管理这些依赖项。

导入Maven项目

方式一:

依赖配置

添加完代码发现依赖并没有生效,需要点击重新加载

Maven特性:依赖传递

可以以图标的形式查看各级依赖

依赖排除

依赖范围Scope

scope 取值范围

默认 compile全部有效

test:仅在测试程序中有效

provided:主程序和测试程序都有效但是不参与项目打包

runtime : 在主程序中有效

Maven生命周期阶段

执行指定生命周期的方法:

在同一套生命周期之中,如果后面的生命周期被执行,那么前面的阶段也会被执行

相关推荐
chuan.bai1 小时前
Java RAG 实战附录:qwen3 与 bge-m3 模型切换指南
java·人工智能·算法
SL_staff1 小时前
销售知识管理的断点分析与技术解法:从3天找话术到秒级检索
java·开源·github
荣码1 小时前
向量数据库选型:4种方案全测了,选错重来成本最高
java·python
rannn_1111 小时前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
摇滚侠1 小时前
《Docker技术入门与实战 第4版》阅读笔记 6 使用 Dockerfile 创建镜像 2
java·笔记·docker
余额瞒着我当琳2 小时前
C++--vector第二讲:手写 C++ STL:vector 源码剖析与迭代器失效分析
android·java·c++
资源大佬星 课it2 小时前
黑马 Java+AI新版V16零基础就业班视频课程百度网盘下载
java·开发语言·人工智能
二十雨辰2 小时前
[Java]-微服务面试题
java·开发语言·微服务
我命由我123452 小时前
Compose Codelab 学习 - Compose 中的基本布局
android·java·java-ee·kotlin·android studio·android-studio·android runtime
莫得感情 o2 小时前
并发 11 · 同步工具类
java·并发