Java中Maven的依赖管理

依赖介绍

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

配置

  1. 在pom.xml中编写<dependencies>标签

  2. 在<dependencies>中使用<dependency>引入标签

  3. 定义坐标的groupId、rtifactId、version

  4. 点击刷新按钮、引入新坐标

例如引入下面的坐标

复制代码
  <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

刷新以后我们发现maven里面的dependencies有变化

注意 如果我们引入的依赖在本地仓库中没有,就会去远程仓库或者中央仓库下载

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

maven中的依赖传递

依赖的分类

直接依赖:在当前项目中通过依赖配置建立的依赖关系

简介依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

可以使用junit排除依赖

复制代码
<exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
  </exclusions>

如何查看依赖

鼠标右键Diagrams然后再选择Show dependencies就可以查看

依赖范围

  1. 主程序范围有效(main文件夹范围)

  2. 测试程序范围有效(test文件夹范围)

  3. 是否参入打包程序(package文件夹范围内)

在默认情况下,可以在任何地方使用可以通过<scope></scope>设置范围

SCOPE范围 主程序 测试程序 打包(运行) 范例
complie Y Y Y logi4
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

maven的生命周期

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

Maven有三套独立的生命周期

  1. clean:清理工作

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

  3. site:生成报告、发布站点

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

clean(清理)->complie(编译)->test(测试)->package(打包)->install(安装)

在同一套生命周期中,当运行后面的阶段,前面的阶段也会运行

maven生命周期执行的两种方式

  1. 在idea中,右侧的工具栏,选中对应的生命周期,双击执行

  2. 在命令提示符里面执行

相关推荐
十年Java程序媛几秒前
Java 多线程基础与锁机制|进程线程、synchronized、volatile、Lock 面试全梳理
java·spring boot·面试
弈栈录1 分钟前
大模型服务抽象:兼容 OpenAI、通义千问与本地模型
java·后端·架构
鶴哥只手遮天8 分钟前
Spring Framework 7.0.9 深度剖析-06-Bean 生命周期与依赖注入原理
java·后端·开源
唐钰小宝B17 分钟前
深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别
java·开发语言·windows
golang学习记24 分钟前
最新版VS Code开发Spring Boot项目保姆级教程
java·spring boot·vscode·后端
叶总没有会1 小时前
RabbitMQ基础--java客户端
java·rabbitmq·java-rabbitmq
小陈不好吃1 小时前
Java 泛型与类型擦除:从 PECS 原则到 TypeToken 绕过
java·开发语言·windows·pecs 原则·typetoken绕过
鶴哥只手遮天1 小时前
Spring Framework 7.0.9 深度剖析-03-IoC 容器核心:BeanFactory 与 BeanDefinition 体系
java·后端·开源
ydjs678899-bot2 小时前
如何在Java中打印pdf静默打印和打印对话框选择
java·python·pdf
Shaoshing2 小时前
存储引擎与架构
java·开发语言·架构