cpr*_*404 521 artifactory maven
有了maven,我偶尔会看到一些来自我尚未构建或包含在我的存储库中的第三方存储库的工件.
我将从maven客户端收到一条错误消息,指出无法找到工件:
未能找到org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 in
http://myrepo:80/artifactory/repo
缓存在本地存储库中,在MyRepo的更新间隔过去或强制更新之前,不会重新尝试解析 - > [帮助1]
现在,我理解这意味着什么,并且可以简单地重新运行我的命令-U
,并且通常在那里工作正常.
但是,我发现这个错误信息非常不直观,并且试图让我的同事们感到头疼.
我想知道是否有一些地方可以修改此update interval
设置.
update interval
此错误消息的客户端或服务器端的设置,被提及?Chr*_*lli 253
我曾经通过删除我本地仓库中相应的下载工件目录来解决这个问题.下次我运行maven命令时,会再次触发工件下载.因此,我认为这是客户端设置.
Nexus方面(服务器回购方),此问题解决了配置计划任务的问题.客户端,-U
正如您已经指出的那样,这是使用完成的.
kds*_*kds 107
您可以删除本地存储库中相应的失败工件目录.而且你也可以简单地使用-U
目标.它会做的工作.这适用于maven 3.所以不需要降级到maven 2.
MrD*_*ews 61
我有一个相关的问题,但Raghuram的答案有所帮助.(我还没有足够的声誉来表达他的答案).我正在使用与NetBeans捆绑在一起的Maven,并且得到了相同的"...被缓存在本地存储库中,在nexus的更新间隔已经过去或强制更新之前不会重新尝试解决 - > [帮助1]"错误.
为了解决这个问题,我添加<updatePolicy>always</updatePolicy>
到了我的设置文件(C:\ Program Files\NetBeans 7.0\java\maven\conf\settings.xml)
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
Run Code Online (Sandbox Code Playgroud)
San*_*ani 46
基本上发生的是,根据maven.Maven的默认updatePolicy将每天从repo获取罐子.所以如果在第一次尝试期间你的互联网没有工作那么它将不会尝试再次获取这个罐子直到24小时花费.
解析度 :
要么使用
mvn -U clean install
Run Code Online (Sandbox Code Playgroud)
其中-U将强制更新回购
或使用
<profiles>
<profile>
...
<repositories>
<repository>
<id>myRepo</id>
<name>My Repository</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
...
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
在您的settings.xml中
Rag*_*ram 36
根据设置参考:
updatePolicy:此元素指定更新应尝试发生的频率.Maven会将本地POM的时间戳(存储在存储库的maven-metadata文件中)与远程数据进行比较.选项包括:always,daily(默认),interval:X(其中X是以分钟为单位的整数)或从不.
例:
<profiles>
<profile>
...
<repositories>
<repository>
<id>myRepo</id>
<name>My Repository</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
...
</profile>
</profiles>
...
</settings>
Run Code Online (Sandbox Code Playgroud)
sfl*_*che 14
尽管您可以通过全新安装(覆盖所有缓存的依赖项)来解决此问题,如@ Sanjeev-Gulgani建议的那样 mvn -U clean install
您也可以简单地删除导致问题的缓存依赖项
mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId"
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见mvn文档。
此错误有时会产生误导.您可能想要检查的两件事:
回购中的依赖是否有实际的JAR?您的错误消息包含其搜索位置的URL,因此请转到该位置,然后浏览到与您的依赖项匹配的文件夹.有罐子吗?如果没有,您需要更改您的依赖项.(例如,当您应该指向子项目时,您可能指向顶级父依赖项)
如果远程仓库上存在jar,则只需删除本地副本即可.它将位于您的主目录中(除非您配置不同)在.m2/repository(ls -a以显示隐藏在Linux上).
小智 7
如果您使用的是Eclipse,请转到Windows - > Preferences - > Maven,然后取消选中"不要自动更新远程存储库中的依赖项"复选框.
这也适用于Maven 3.
小智 6
我对不同的工件有类似的错误。
<...> 已缓存在本地存储库中,直到 Central 的更新间隔已过或强制更新后,才会重新尝试解析
上述解决方案都不适合我。我终于在IntelliJ IDEA 中通过 File > Invalidate Caches / Restart ... > Invalidate and Restart解决了这个问题。
归档时间: |
|
查看次数: |
524488 次 |
最近记录: |