MVN--02

一、Maven 坐标

1. 坐标的核心作用

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

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

2. 坐标三大核心组成

表格

组成部分 作用 命名规范 示例
groupId 定义项目所属的组织 / 公司 通常为域名反写,保证全局唯一 com.itheima、org.springframework
artifactId 定义项目 / 模块的名称 通常为项目名、模块名,小写 + 中划线分隔 maven-demo、mysql-connector-java
version 定义项目 / 依赖的版本号 遵循语义化版本规范,SNAPSHOT 代表快照版 1.0-SNAPSHOT、5.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>,导入依赖管理配置 统一管理多模块项目的依赖版本
相关推荐
2601_953824613 天前
基于SSM的水果超市管理系统
java·tomcat·maven
明月_清风4 天前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
今年下半年4 天前
SpringBoot整合金蝶中间件
spring boot·中间件·maven
vx_BS813305 天前
【项目编号:project51629】Spring Boot 乡村自来水缴费系统:把抄表、水费生成与在线缴费做成一条数字化闭环
java·spring boot·eclipse·tomcat·maven
暮雨哀尘6 天前
JAVA基础练习(四):SpringBoot 实现简易登录功能
java·spring boot·eclipse·maven
hanchenxing6 天前
CI/CD流水线中的构建缓存:从原理到最小可运行示例CI/CD
maven·构建缓存
愛芳芳7 天前
Swagger2 多环境动态配置实战指南
java·后端·maven·springboot·swagger
金玉满堂@bj8 天前
多环境部署方案(开发、测试、生产,搭配Tomcat\+WAR包)
java·tomcat·maven
青春易逝丶8 天前
Maven
java·maven