maven依赖查找官网
dependencyManagement
dependency 真正引入依赖,而 dependencyManagement 只是声明依赖版本等信息,并不实际引入。一般使用在父模块中,子模块声明这个依赖的时候,就不需要声明版本信息。
其中的<type>pom</type>和<scope>import</scope>引入的不是代码依赖,而是版本管理信息
<relativePath/>
空标签等价于
不要尝试从相对路径查找父 POM,直接去本地仓库和远程仓库寻找。
这是一种显式声明“父 POM 必须从仓库获取” 的方式,可以避免 Maven 因在相对路径查找而浪费时间和产生误导
文章作者: coder-xuyong
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 coder-xuyong!
相关推荐

2026-09-03
JDK17 新特性
Java Stream 集合转 MapCollectors.toMap 详解场景:将 List 列表转换为 Map<K, T> 映射表,常用于通过唯一键(ID/编号)实现 O(1) 级别的快速数据查找。语法: 123456789import java.util.function.Function;import java.util.stream.Collectors;Map<String, DigitSiteEquip> equipMap = allDigitSiteEquips.stream() .collect(Collectors.toMap( DigitSiteEquip::getThirdNum, // 参数1:Key 生成器(取什么做键) Function.identity(), // 参数2:Value 生成器(取什么做值,identity表示对象本身) (oldValue, newValue) -> oldValue // 参数3...

2026-07-22
jvm面试
JNI是什么Java编译器把Java文件编译为字节码文件之后,jvm执行引擎将字节码指令解释为对应操作系统能运行的指令,这也是为什么Java是编译和解释共存的语言。当Java代码执行的时候,需要调用底层的c或者c++写的本地方法,所以这里就需要本地方法接口(JNI)去和本地方法库做交互。 JVM的垃圾回收机制是怎么样的?想要回收垃圾,先得看一个对象他是不是垃圾,一般有两种方法: 引用计数法:如果对象被引用了,计数器+1,如果取消引用了就-1,计数器为零就可以回收了,简单除暴。但是他无法处理循环引用的问题。 可达性分析:对象A引用B,B引用C,C引用D会形成一个有向图。可达性分析会从根对象(gc root)出发遍历这个有向图,遍历不到的就是不可达对象,就是垃圾。 三色标记法:用于遍历标记判断的,用三种颜色去标记对象的状态。但是存在两个问题,一个是浮动垃圾,另一个是漏标的问题。 判断对象是垃圾之后,就需要使用垃圾回收算法去处理。基础的算法有三种: 标记清除算法:从gc roots 出发,去遍历标记所有可达性的对象,之后遍历堆去清除所有不可达的对象。缺点会产生内存碎片。 标记...

2025-07-30
java 基础
简介详细api方法可以查看:官方API文档更多教程可以查看:官方教程文档 语法与 C、C++接近,且丢弃了 C++中很少使用的特性。此外,java 还不使用指针,而是引用,并提供了自动分配和回收内存空间,使得我们不用为内存管理而担忧。 运行环境,最好保证操作系统内存 1G 以上 环境配置oracle jdk 下载:https://www.oracle.com/java/technologies/downloads/ 需要有 Oracle 账户现在压缩包,解压放置在E:\development下,在 “系统变量” 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击”编辑-新建”,不存在则点击”新建”。 变量设置参数如下: 变量名:JAVA_HOME 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\too...

2026-08-18
MyBatisPlus核心功能
条件构造器在BaseMapper中,有一些Wrapper参数的方法,这就是复杂一点的where条件查询。复杂的条件查询会用到Wrapper类,以及它的各种子类,我们常用的就是QueryWrapper、UpdateWrapper和LambdaQueryWrapper。 QueryWrapper无论是修改、删除、查询,都可以使用QueryWrapper来构建查询条件。接下来看一些例子:查询:查询出名字中带o的,存款大于等于1000元的人。代码如下: 1234567891011@Testvoid testQueryWrapper() { // 1.构建查询条件 where name like "%o%" AND balance >= 1000 QueryWrapper<User> wrapper = new QueryWrapper<User>() .select("id", "username", "info", "bal...

2025-07-29
Spring 之 JDBC
Spring 之 JDBCJDBC 是 Java 语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了增、删、改、查数据库的方法。 JDBC 入门示例JDBC 的工作步骤大致如下: 创建实体类。 声明数据库读写接口的 DAO 接口。定义 DAO 的好处在于对于数据层上层的业务,调用 DAO 时仅关注对外暴露的读写方法,而不考虑底层的具体持久化方式。这样,便于替换持久化方式。 创建一个 DAO 接口的实现类,使用 Spring 的 JDBC 模板去实现接口。 最后,定义一个 DAO 接口的实现类的 JavaBean,并将数据源注入进去。 假设,我们要通过 Spring + JDBC 访问一张 Mysql 数据表 user,user 表的数据结构如下: 123456789101112131415-- 创建用户表CREATE TABLE `user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` VARCHAR(255) ...

2025-01-01
redis基础
初识RedisRedis是一种键值型的NoSql数据库,这里有两个关键字: 键值型 NoSql 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值、甚至json。 认识NosqlNoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。 结构化和非结构化传统关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束。 而NoSql则对数据库格式没有严格约束,往往形式松散,自由。可以键值型,文档型,图格式。 关联和非关联传统数据库的表与表之间往往存在关联,例如外键。而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合: 123456789101112131415161718{ id: 1, name: "张三", orders: [ &...
评论
