今天碰见一个事情,很离奇,记录一下:
产生原因:切换分支导致。
错误描述:无法启动(DEBUG)项目。
报错信息:java.lang.IllegalArgumentException:Circular placeholder reference 'XXXXX' in property definitions
截图:
看了很多出现相同问题的帖子,没有一个解决的让我心满意足的,要么是粘贴别人的,要么就是只告诉你原因的;
看报错原因,是因为property 配置文件中domain_name这个属性占位符被重复引用导致的,其他人都是通过更改属性名称解决的,但是我不想修改,因为是多人开发,部署好的没有问题,那么就说明不是代码的问题,所以我就想找一个不用改代码也能解决的方案。
不过我不确定我们遇见的情况是否一致,所以这个解决方案我自己试过,是挺好用的。
先说一下我的思路吧:
代码我本身是没有动过的,远程机器部署的代码也没有问题,那么一定是我本地的问题,再结合报错中提示的循环占用,我猜测是有个文件名相同且内容也相同的文件。然后我就想到target文件,所以就抱着试一试的心态,把target里面的property 直接删除。
嗯 ,很神奇,项目可以启动了,可以继续Debug改bug了。
至于为什么频繁切换分支会导致这个错误产生,我没有深究。有空再研究;
解决方法:
删除本地项目所在的\target\classes\config目录下的同名文件,立马见效;
补充说明:放心删,但是谨慎提交哈,或者直接IDEA设置忽略target文件的提交。
2024年02月29日17:51:33 更新另外两个不改代码的解决方法:
1、mvn clean install 一次就好了,但是每次都需要 install
2、执行 一次 mvn的 reimport,就是那个刷新按钮
结束语:采用我这个方式解决了问题的兄弟,记得回来给我点赞。