之前遇到的
先说问题,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?大概率是。