MVN--02

一、Maven 坐标

1. 坐标的核心作用

Maven 坐标是 Maven 仓库中资源的唯一标识符,作用是:

  • 唯一标识当前项目本身
  • 精准引入项目所需的第三方依赖(Jar 包)
  • 解决依赖冲突,确保项目构建的一致性

2. 坐标三大核心组成

表格

组成部分 作用 命名规范 示例
groupId 定义项目所属的组织 / 公司 通常为域名反写,保证全局唯一 com.itheimaorg.springframework
artifactId 定义项目 / 模块的名称 通常为项目名、模块名,小写 + 中划线分隔 maven-demomysql-connector-java
version 定义项目 / 依赖的版本号 遵循语义化版本规范,SNAPSHOT 代表快照版 1.0-SNAPSHOT5.1.46

3. 坐标的两种典型用法

  • 定义项目自身坐标 :在 pom.xml<project> 根标签下配置,用于项目打包、部署时的唯一标识

    xml

    复制代码
    <groupId>com.itheima</groupId>
    <artifactId>maven-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
  • 引入第三方依赖 :在 <dependencies> 标签下配置,用于引入外部 Jar 包

    xml

    复制代码
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

二、依赖范围(scope)

1. 核心作用

通过 <scope> 标签控制依赖 Jar 包在编译、测试、运行三个阶段的可见性,避免不必要的 Jar 包打入最终产物,减小包体积、避免冲突。

<scope>默认值为 compile,即全阶段可见。

2. 6 种依赖范围对比表

表格

依赖范围 编译 classpath 测试 classpath 运行 classpath 核心特点 典型场景
compile ✅ Y ✅ Y ✅ Y 默认值,全阶段可见,会被打包到最终产物 业务工具包(如 logback、Spring 核心包)
test ❌ - ✅ Y ❌ - 仅测试阶段可见,不会打包 单元测试框架(如 JUnit、TestNG)
provided ✅ Y ✅ Y ❌ - 编译 / 测试可见,运行时由容器提供,不打包 Web 容器相关 API(如 servlet-api、tomcat-catalina)
runtime ❌ - ✅ Y ✅ Y 仅测试 / 运行时可见,编译时不可见,会打包 JDBC 驱动(仅运行时需要,编译用接口)
system ✅ Y ✅ Y ❌ - 与 provided 类似,需手动指定本地 Jar 包路径 本地私有 Jar 包(不推荐,破坏 Maven 依赖管理)
import - - - 仅用于 <dependencyManagement>,导入依赖管理配置 统一管理多模块项目的依赖版本
相关推荐
编程令我快乐5 小时前
maven部分构建参数讲解
java·maven
BIBI20499 小时前
Windows 下 Maven 安装与 VSCode 配置
java·windows·vscode·maven·环境搭建·安装教程
神奇小梵1 天前
《javaweb基础》后端篇————maven补充(用maven单元测试,maven常见问题)
单元测试·maven
开发者联盟league1 天前
maven核心插件介绍
java·maven
编程令我快乐1 天前
maven中deploy 的流程
java·maven
huaweichenai2 天前
使用maven搭建sprint-boot
java·maven·sprint
paopaokaka_luck2 天前
基于springboot3+vue3的美妆商城平台(AI问答、协同过滤算法、支付宝沙盒支付、物流快递api、Echarts图形化分析)
java·前端·spring boot·学习·maven·echarts
老马历写记4 天前
Maven POM 依赖管理总结
java·maven·system·pom·optional
sugar__salt6 天前
Spring、Spring Boot 与配置文件核心知识点详解
java·spring boot·后端·spring·java-ee·maven·intellij-idea
Architect_Lee8 天前
mac安装不同版本的maven
java·maven