记一个操蛋的maven问题

博主在开发中遇到Maven子项目莫名引用了父项目的undertow.version属性导致编译错误,移除后问题解决。另外,引入spring-boot-starter-quartz依赖时,IDEA错误地寻找错误版本的quartz,即使仓库存在正确版本仍报错。问题通过重启IDEA得到解决,疑似IDEA缓存问题。
摘要由CSDN通过智能技术生成

之前遇到的

先说问题,maven父项目里<properties></properties>里的属性被子项目莫名其妙引用了。

父项目的pom.xml

 <properties>
 	<undertow.version>2.6.8</undertow.version>
 </properties>

子项目的pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
           <!-- <scope>provided</scope>-->
        </dependency>
</dependencies>

编译项目时报错:
在这里插入图片描述

[WARNING] The POM for io.undertow:undertow-core:jar:2.6.8 is missing, no dependency information available
[WARNING] The POM for io.undertow:undertow-servlet:jar:2.6.8 is missing, no dependency information available
[WARNING] The POM for io.undertow:undertow-websockets-jsr:jar:2.6.8 is missing, no dependency information available

Cannot resolve io.undertow:undertow-core:2.6.8
Cannot resolve io.undertow:undertow-websockets-jsr:2.6.8
Cannot resolve io.undertow:undertow-servlet:2.6.8

我就纳了闷了,哪来的2.6.8?我又没引用!
于是我把父项目的

 <properties>
 	<undertow.version>2.6.8</undertow.version>
 </properties>

删掉,再编译,发现问题解决,没有报错了。这个问题可以添加/删除上述代码来反复重现!

可能是idea的问题:
在这里插入图片描述

又来了

现在跟父项目子项目没关系了,我引入一个spring-boot-starter-quartz的pom,版本是2.4.0,这个pom里又引入了quartz依赖,版本是2.3.2。
我去maven库和阿里镜像仓库都查询过了,仓库里是有quartz2.3.2的。
但是每次一刷新项目就报错。
报错信息莫名其妙,Unresolved dependency: 'org.quartz-scheduler:quartz:jar:2.4.0' ,你为啥要去找org.quartz-scheduler:quartz:jar:2.4.0?你找org.quartz-scheduler:quartz:jar:2.4.0肯定找不到啊!
在这里插入图片描述
人家pom里压根就没让你找2.4.0啊!2.4.0是pom本身的版本,你怎么能拿本身的版本去找它依赖的版本呢?你不应该去找2.3.2吗?
在这里插入图片描述
什么玩意的错误!根本搞不懂!

还有,为什么我将版本改成2.7.0还是报2.4.0的错?
在这里插入图片描述

项目设置那个界面,每次我都删掉了那个2.4.0,总是会自动出现2.4.0,这2.4.0还能阴魂不散???

在这里插入图片描述

什么clean刷新我都干了,根本不好使,麻蛋!

解决办法

重启idea!重启之后就不报错了,不敢是2.4.0还是2.7.0都能编译通过,怎么刷新都不报错!这是不是idea的BUG?大概率是。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值