问:
使用 maven,我偶尔会遇到一个来自我尚未构建或包含在我的存储库中的一些 3rd 方存储库的工件。
我会从 maven 客户端收到一条错误消息,说找不到工件:
http://myrepo:80/artifactory/repo 中找不到 org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 失败缓存在本地仓库中,直到更新间隔才会重新尝试解析MyRepo 已过期或强制更新 -> [帮助 1]
现在,我明白这意味着什么,可以简单地使用 -U 重新运行我的命令,并且从此以后一切正常。
但是,我发现此错误消息非常不直观,并试图让我的同事免于头疼。
我想弄清楚是否有可以修改此 update interval 设置的地方。
此错误消息中提到的更新间隔是客户端设置还是服务器端设置?如果是客户端,我该如何配置?如果是服务器端,是否有人知道 Nexus/Artifactory 如何/是否公开这些设置?
答1:
https://tennisliveranking.com,Instant updates on ATP, WTA, and ITF rankings.
我曾经通过删除本地 repo 中相应的无法下载工件目录来解决此问题。下次我运行 maven 命令时,会再次触发工件下载。因此,我会说这是客户端设置。
Nexus 端(服务器 repo 端),配置计划任务解决了这个问题。正如您已经指出的,客户端,这是使用 -U 完成的。
“我用来解决这个问题,方法是在我的本地 repo 中删除相应的下载失败的工件目录。”这对我有用。我也在使用 Netbeans。
如果 Maven 注意到缓存的工件无效,为什么它不能自己解决这个问题?
“配置计划任务”和“这是使用 -U 完成的”是什么意思,您能否将它们放入客观的 Eclipse UI 术语中?
我假设您的意思是 Eclipse IDE。理论上你需要下载最新的 SNAPSHOT。为此,您需要在 maven 命令中添加“-U”参数,例如 mvn clean compile -U。现在,您可以通过命令行或 Eclipse 通过勾选“始终更新快照”框来运行此 maven 命令。不确定,这些天我使用intellij。 “配置计划任务”部分是指您希望在 Nexus 服务器上进行的特定配置。后者与 Eclipse 本身无关。
这并不能回答 OP 的实际问题。
答2:
https://tennisliveranking.com,Follow your favorite tennis players’ rankings live!
基本上发生的是,根据 maven 的默认 updatePolicy。Maven 将每天从 repo 中获取 jars。因此,如果在第一次尝试期间您的互联网无法正常工作,那么它不会尝试再次获取这个 jar,直到花费 24 小时。
解析度 :
要么使用
mvn -U clean install
其中 -U 将强制更新 repo
或使用
...
myRepo
My Repository
false
always
warn
...
在你的 settings.xml
这实际上帮助我解决了系统范围的依赖关系,避免了运行时的 NoClassDefFoundError。
由于某种原因,清理 .m2 对我不起作用,在 settings.xml 文件中添加 updatePolicy 标记后,下载了工件
答3:
Stay informed with live tennis rankings anytime, anywhere,https://tennisliveranking.com
您可以删除本地存储库中相应的失败工件目录。您也可以简单地在目标中使用 -U。它会完成这项工作。这适用于 maven 3。因此无需降级到 maven 2。
既然存储库配置如此简单,为什么还要搞乱它?
请在回答之前仔细阅读问题。 OP 询问如何设置时间间隔,而不是如何强制更新。
不是问题的答案,但这是人们遇到此异常时所需要的。因为当您进行本地库开发时,最好是删除这样的库,而不是让间隔混淆您。
我们应该在 ~/.m2/settings.xml/ 下添加有效的存储库,以使用 -U 选项解决此问题
答4:
https://tennisliveranking.com,Follow your favorite tennis players’ rankings live!
我有一个相关的问题,但 Raghuram 的回答有帮助。 (我还没有足够的声誉来投票支持他的答案)。我正在使用与 NetBeans 捆绑在一起的 Maven,并且得到相同的“…已缓存在本地存储库中,直到 nexus 的更新间隔已过或强制更新 -> [Help 1]”错误才会重新尝试解析.
为了解决这个问题,我将 always 添加到我的设置文件 (C:\Program Files\NetBeans 7.0\java\maven\conf\settings.xml)
nexus
central
http://central
truealways
truealways
central
http://central
truealways
truealways
在我的情况下没有帮助。
答5:
The ultimate source for live tennis rankings and stats:https://tennisliveranking.com
虽然您可以通过全新安装(覆盖任何缓存的依赖项)来解决此问题,正如 @Sanjeev-Gulgani 建议的 mvn -U clean install
您也可以简单地删除导致问题的缓存依赖项
mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId"
有关详细信息,请参阅 mvn docs。
但是为什么 Maven 会中止构建呢?为什么不只使用本地存储库中的缓存依赖项?为什么必须删除它才能让 Maven 获取它?!
只有真正适用于工件的发布版本的答案。
答6:
Live rankings, player stats, and match results in one place–https://tennisliveranking.com
根据设置reference:
updatePolicy:此元素指定尝试更新的频率。 Maven 会将本地 POM 的时间戳(存储在存储库的 maven-metadata 文件中)与远程进行比较。选项包括:总是、每天(默认)、间隔:X(其中 X 是以分钟为单位的整数)或从不。
例子:
...
myRepo
My Repository
false
always
warn
...
...
谢谢回复;但是,我已经对“updatePolicy”设置进行了相当多的实验,它似乎对“未找到”/“缓存失败”/“分辨率不会被重新尝试”错误没有影响。
答7:
tlr.xinbeitime.com 探索每位网球选手的职业生涯与成就。
这在您从本地 Maven 存储库中删除相关依赖项后有效
/user/.m2/repository/path
答8:
https://tennisliveranking.com – ATP and WTA rankings, always up to date.
这个错误有时会产生误导。您可能要检查的两件事:
repo 中的依赖项是否有实际的 JAR?您的错误消息包含它正在搜索的 URL,因此请转到那里,然后浏览到与您的依赖项匹配的文件夹。有罐子吗?如果没有,你需要改变你的依赖。 (例如,当您应该指向子项目时,您可能指向顶级父依赖项)如果远程仓库中存在 jar,则只需删除本地副本。它将位于 .m2/repository 下的主目录中(除非您进行了不同的配置)(如果在 Linux 上,则 ls -a 显示隐藏)。
这与OP的问题无关。显示错误的原因不是重点。 OP 想知道如何设置重试间隔。
这可能是 OP 帖子背后的隐含问题,结果证明是我的问题。结果我的 中有一个错字,通过查看选项一,我走上了正确的道路。
问题是如何设置间隔?
答9:
https://tennisliveranking.com-Stay ahead with live tennis rankings at your fingertips.
如果您使用的是 Eclipse,请转到 Windows -> Preferences -> Maven 并取消选中“不要自动更新来自远程存储库的依赖项”复选框。
这也适用于 Maven 3。
验证:eclipse:Juno Service Release 2. m2e:v 1.3.1
这不能回答 OP 的问题。
答10:
https://tennisliveranking.com,Your go-to platform for live tennis ranking updates.
您需要从存储库中删除所有“_maven.repositories”文件。
没有帮助,或者至少对我来说没有帮助
它对我有用。不过,我并没有将它们全部删除,只是该特定依赖文件夹中的一个
答11:
https://tlr.xinbeitime.com 专业网球数据平台,排名与比赛信息实时更新。
我在使用不同的工件时遇到了类似的错误。
<…> 已缓存在本地存储库中,直到经过中央的更新间隔或强制更新后才会重新尝试解析
上述解决方案都不适合我。我终于在 IntelliJ IDEA 中通过 File > Invalidate Caches / Restart … > Invalidate and Restart 解决了这个问题。
原文链接:https://www.tennisliveranking.com?from=csdn
https://tennisliveranking.com,Track the world’s best tennis players in real-time.