使用maven,我偶尔会遇到来自第三方回购的工件,这些工件我还没有构建或包含在我的存储库中。

我将从maven客户端得到一个错误消息,说无法找到工件:

无法找到org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 在http://myrepo:80/artifactory/repo中缓存在本地 存储库,解析将不会重新尝试,直到更新 MyRepo的时间间隔已过或更新被强制->[帮助1]

现在,我明白了这意味着什么,并且可以简单地用-U重新运行我的命令,从那时起,事情通常都能正常工作。

然而,我发现这个错误消息非常不直观,我试图让我的同事们不那么头疼。

我试图弄清楚是否有一些地方,我可以修改这个更新间隔设置。

此错误消息中提到的更新间隔是客户端设置还是服务器端设置? 如果是客户端,如何配置? 如果是服务器端,有人知道Nexus/Artifactory如何公开这些设置吗?


当前回答

在您从本地maven存储库中删除相关依赖项之后,这就可以工作了

/user/.m2/repository/path

其他回答

有些有关. .我正在

"[错误]未能在项目testproject上执行目标:无法解决项目myjarname:jar:1.0-0的依赖:在http://repo1.maven.org/maven2中无法找到myjarname-core:bundle:1.0-0在本地存储库中缓存,在中央更新间隔已经过或强制更新之前将不会重新尝试解决->[帮助1]"

此错误是由于意外地使用Maven 3而不是Maven 2引起的。只是觉得这可能会节省一些时间,因为我最初的谷歌搜索把我带到了这个页面。

我是怎么得到这个问题的,

当我从Eclipse Juno更改到Luna,并从SVN repo签出我的maven项目时,我在构建应用程序时遇到了同样的问题。

我试过什么? 我尝试清理本地存储库,然后再次使用-U选项更新所有版本。但我的问题还在继续。

然后我去了窗口—>首选项—> Maven—>用户设置—>,点击本地存储库下的重新索引按钮,等待重新索引发生。

就这样,问题解决了。

我遇到了这个问题,文中提出的全面描述帮助我解决了它。

第二个问题是我的问题。我使用了我刚刚添加的第三方存储库,它在我的项目中做pom文件的存储库部分。我在pluginrepository中添加了相同的存储库信息来解决这个问题。

我曾经通过删除本地repo中对应的无法下载的工件目录来解决这个问题。下次运行maven命令时,将再次触发工件下载。因此,我认为这是一个客户端设置。

Nexus端(服务器回收端),此问题是通过配置定时任务解决的。 客户端,这是使用-U完成的,正如您已经指出的那样。

如果您使用Nexus作为代理回购,它有“未找到缓存TTL”设置,默认值为1440分钟(或24小时)。降低这个值可能有帮助(存储库>配置>过期设置)。

有关更多信息,请参阅文档。