【Maven】maven _remote.repositories 导致的local repository有依赖仍报找不到依赖问题

引言

在build工程时,发现有依赖明明在local repository路径~/.m2/repository/org/apache/hadoop/hadoop-build-tools/3.1.1.3.1.0.0-78下已经有了,却仍然报找不到依赖
在这里插入图片描述
开始看到这个错误思考:

  1. 报的是https://repo.maven.apache.org/maven2找不到这个依赖,去该仓库确实没有,要添加第三方仓库
  2. 添加完有该包的仓库后,依然报这个错误
  3. 后来搜反正就是要么让在settings中添加profile,要么在pom中添加repository,要么改settings中mirror配置都不好使
  4. 后来注意到仓库路径下都有一个_remote.repositories,所以就把该依赖仓库路径下的_remote.repositories删除,再重新执行就好了

_remote.repositories的作用

内容来源:https://stackoverflow.com/questions/16866978/maven-cant-find-my-local-artifacts

在Maven 3.0.x之前,Maven不会跟踪本地存储库中文件的来源。

这可能会导致构建问题,尤其是如果您要构建的东西列出了(现在已死)非常乏味的java.net2存储库...该存储库不仅更改了已发布的工件(极端的坏习惯),而且还在以下位置发布了工件与中央工件相同的座标,但内容不同(令人难以置信的邪恶)

因此,您可以进行构建工作(因为您从中央有commons-io:commons-io:2.0)擦除了本地存储库,并且构建失败了(因为您现在从java.net2获得了commons-io:commons-io:2.0是完全不同的工件,在pom中具有不同的依赖性),反之亦然。

上面的情况是使用Maven存储库管理器的驱动程序之一,因为它使您可以控制向下游公开的存储库的子集以及从多个存储库解析工件的顺序(通常称为路由规则)。

无论如何,当maven切换到Aether作为存储库访问层时,便决定开始跟踪工件的来源。

因此,对于Maven 3.0.x,当从存储库下载工件时,maven会留下_maven.repositories文件来记录从中解析文件的位置。如果正在构建项目,并且有效的存储库列表不包含解析工件的位置,则Maven会确定该工件好像不在缓存中,并将尝试重新解析该工件。 ..

虽然在3.0.x中存在许多错误...最关键的是如何处理脱机...即:当脱机时,maven 3.0.x认为没有存储库,因此总是会发现与_maven不匹配。仓库文件!!!

Maven 3.0.x的解决方法是从本地缓存中删除这些文件,例如

$find 〜/.m2/repository -name _maven.repositories -exec rm -v {} \;
副作用是您失去了Maven 3.0.x试图提供的保护。

好消息是,Maven 3.1将具有必需的修复程序(如果我们能够共同行动并发布版本的话)

在脱机模式下,使用Maven 3.1时,_maven.repositories文件被(半)忽略,并且还有一个选项可以忽略该文件以进行联机生成(称为旧版模式)

目前(2013年6月1日)正在进行第四次削减符合法律和测试要求的发行版的尝试...因此,假设第四次是幸运的,我希望看到3.1.0-alpha -1在3-4天的时间内发布了...但是,鉴于我们要给3.1中的更改​​留出足够的时间来浸泡以确保使用构建不会中断(API发生了更改(由偶然的情况-插件作者依赖的站点和依赖项插件需要API(即使他们不应该使用),因此有潜力,尽管我们认为我们已经涵盖了所有基础)

这里边儿内容有点早哈2013.6.1,而我现在用的是maven 3.5版本,依然会有这个问题,文件名字也变成了_remote.repository,不管了反正暂时解决了问题。

搜到的另一文章介绍_remote.repository,但是感觉哪里不太对:https://blog.csdn.net/lovepeacee/article/details/103094247

maven相关知识链接

Maven仓库理解和优先级:https://swenfang.github.io/2018/06/03/Maven-Priority/
maven全局配置文件settings.xml详解:https://www.cnblogs.com/jingmoxukong/p/6050172.html

发布了84 篇原创文章 · 获赞 12 · 访问量 10万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章