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生命周期阶段

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

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

相关推荐
plainGeekDev11 分钟前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev15 分钟前
onActivityResult → ActivityResult API
android·java·kotlin
Sunia16 分钟前
《AgentX 专栏》10-生产部署:3台2C4G云服务器把企业级Agent真正跑起来的完整方案
java·架构
ZhengEnCi1 小时前
J7A-高级Java工程师面试三道灵魂拷问-深度广度与工程素养的终极检验
java·后端
狼爷20 小时前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
祎雪双十Gy1 天前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库
java·后端
小锋java12341 天前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统
java
考虑考虑1 天前
Java实现hmacsha1加密算法
java·后端·java ee
掉鱼的猫1 天前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·spring boot
plainGeekDev1 天前
广播接收器 → Flow + Lifecycle
android·java·kotlin