昨晚上,把远程代码弄下来想调试一下,没想到,一模一样的本地仓库依赖项(pom依赖),一点maven刷新就会说什么远程仓库上没有。
当时觉得很奇怪,我本地仓库不是有吗,为什么还要去远程仓库下呢?(期间我可能改过仓库镜像,记不清了。或者远程仓库有变更)
后来,查阅资料后才知道,maven本地仓库中,会有一个文件叫做_remote.repositories的文件,在本地仓库的每个依赖包都存在一个名为_remote.repositories的文件,该文件记录了依赖的来源信息。如果settings.xml中的id发生了变化,或者远程仓库的URL发生改变,Maven会认为依赖的来源已经改变,从而需要重新从远程仓库下载(确保远程上有)。
总之,_remote.repositories用来标示该资源的来源,如果有这个_remote.repositories,那就会在访问本地的同时,必须确保远程上有才行。