今天碰见一个事情,很离奇,记录一下:

产生原因:切换分支导致。

错误描述:无法启动(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,就是那个刷新按钮

结束语:采用我这个方式解决了问题的兄弟,记得回来给我点赞。 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐