网站首页 > 技术文章 正文
今天是刘小爱自学Java的第99天。
感谢你的观看,谢谢你。
话不多说,开始今天的学习:
昨天下载并配置了maven,今天就实际操作下。
Maven的一个核心作用就是管理项目的依赖,这个依赖就可以理解成jar包。
有了它就不用再去网上一个一个找jar包了,直接添加jar包的坐标就好。
那么其具体如何导入呢?
一、依赖管理
在maven工程中,有一个核心配置文件pom.xml,在该配置文件中即可以引入依赖。
1本地仓库引入
<dependencies>标签就好比以前的lib包,<dependencie>标签也就对应着jar包。
其中关于标签名:
- groupId:定义当前项目(jar包)隶属的实际项目组。
- artifactId:定义当前项目(jar包)的名称。
- version:定义当前项目(jar包)的版本号。
正是因为有了version这个标签的存在,通过该标签统一版本起来也方便了很多。
因为这两种依赖很常见,我本地仓库中已经有了,所以导入依赖时根据提示就可以导入。
此外在开发工具中也可以直接搜索依赖:
使用快捷键:Alt+Insert,可以搜索对应的依赖,点击即可以引入依赖。
不过上述这两种情况,都是本地仓库中存在对应的依赖才能够被搜索到。
如果本地仓库没有,就需要使用到私服了。
2私服引入
昨天在配置文件夹中就配置过对应的私服。
使用的是阿里云私服,将其路径复制下来访问,可以访问到如下界面:
通过文件搜索功能可以搜索到需要的依赖,比如我这边搜索的是druid。
找到对应的jar包点击,可以下载对应的jar包,但是如果是使用maven,不用下载。
将依赖复制后在项目中引入即可。
在引入依赖后开发工具右下角会出现如下提示:
点击import Changes就完成依赖的引入了。
同时也会将该依赖下载到本地仓库中。
二、依赖配置
在引入需要使用的依赖后,有时候不能直接就使用当前的依赖,需要对这些依赖进行配置。
1依赖范围设置
maven的运行环境有三种:编译classpath,测试classpath,运行classpath。
而依赖范围设置就是用来控制依赖与这三种classpath之间的关系的。
其中依赖范围都是在标签<scope>中配置:
①编译依赖范围compile
如果没有指定,默认就是这种依赖范围。
使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
典型的例子就是jdbcTemplate,它在编译、测试和运行代码时都需要。
②测试依赖范围test
使用此依赖范围的Maven依赖,只对测试classpath有效。
在编译和运行项目期间都不需要使用此依赖。
典型的例子就是Junit,它只在测试代码时有效。
③已提供依赖范围:provided
使用此依赖范围的maven依赖在编译和测试classpath有效,但运行时无效。
典型的例子就是servlet-api。
编译和测试的时候需要使用servlet-api中的方法,但是使用tomcat运行项目的时候不需要。
我们查看下Tomcat的文件路径,会发现其本身就自带了该jar包。
所以Tomcat在运行期间会自动提供这个依赖。
如果我们引入的该依赖在运行时也有效,一旦和Tomcat自带的版本不一样,就会出现冲突。
④运行时依赖范围:runtime
使用此依赖范围的maven依赖对于测试和运行classpath有效,但在编译时无效。
典型的例子是JDBC驱动实现。
项目中只有在执行测试或者运行项目的时候才需要该依赖。
⑤系统依赖范围:system
该依赖和provided依赖范围完全一致。
但是此依赖不是来自Maven的中央仓库。
使用system范围的依赖时必须通过<systemPath>标签指定依赖文件的路径。
典型的例子是Oracle的驱动包。
该依赖从中央仓库无法下载,需要先将Oracle的驱动包下载到本地,再通过本地路径引入。
该依赖范围了解即可,使用不常见。
注意:
上述编译都是指对项目主代码的编译,不包含对于测试代码的编译。
2依赖版本维护
事实上,在一个项目中,需要引入的依赖是很多的,可能有几十个。
而各个依赖又有不同的版本,为了统一维护版本,可以专门将依赖的版本抽取出来统一管理:
在<properties>标签中放入各个依赖的版本号。
版本标签命名格式为依赖名.version。
在对应的依赖<version>中使用${}引入前面定义好的版本即可。
最后
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
猜你喜欢
- 2025-07-23 国产化红利到底在哪?好多人都在瞎折腾
- 2025-07-23 Oracle 推出 Java 24,增强 AI 支持和后量子加密
- 2025-07-23 JAVA桥接模式适用场景,优缺点是什么你知道吗,这篇文章彻底讲透
- 2025-07-23 SpringBoot条件化配置(@Conditional)全面解析与实战指南
- 2024-10-26 一个前后端分离的Java快速开发平台platform-plus
- 2024-10-26 Oracle-MySQL透明网关配置中关于Driver的坑
- 2024-10-26 pycharm连接数据库失败的解决方法!pycharm连接数据库报错原因!
- 2024-10-26 埃里森炮轰亚马逊AWS不安全,发布Oracle云2.0
- 2024-10-26 JDBC常用的几款数据库驱动程序名及URL
- 2024-10-26 重磅!Spring Boot 2.6 正式发布,一大波新特性,看完我彻底躺平了
你 发表评论:
欢迎- 628℃几个Oracle空值处理函数 oracle处理null值的函数
- 621℃Oracle分析函数之Lag和Lead()使用
- 610℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 604℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 602℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 594℃【数据统计分析】详解Oracle分组函数之CUBE
- 584℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 568℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)