问题起始:
由idea2018专业版更换为idea2021社区版以后出现。原本启动地址都是target/classes/,出问题后就是taget/test-classes/
环境:
jdk1.8.0_181,idea2021社区版,springboot
问题追查:
这里只说最关键的问题点,其他繁琐过程省略。
程序debug启动后,我断点追查到spring-core:5.1.9里的ClassPathResource.resolveURL(),将"application.properties"作为入参path,调用ClassLoader.getResource(path)时,得到的URL对象里的地址是taget/test-classes/。我通过控制台观察了启动参数,发现确实是taget/test-classes/这个地址顺序优先于taget/classes/。但不确定是否这是根本原因,也不确定这个排序从何而来。
问题现状:
我将idea启动设置为每次启动不从新编译构建,然后删除了taget/test-classes/文件夹。这样可以屏蔽这个问题。
但还是想要完全了解问题原因,由于改问题可能难以复现,希望大家可以提供一些方向来供我追索该现象,比如这个启动排序从何而来
这里是启动时问题出现
这里是启动参数里发现test-classes确实优先于classes