我在其他计算机上导入了我的工作项目,因此它开始下载依赖项 .
显然在此期间我的互联网连接崩溃了 . 现在我得到:
为漫画构建错误; org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目漫画上执行目标测试:无法解析项目漫画的依赖项测试:漫画测试:war:0.0.1-SNAPSHOT:无法解析以下工件:org.springframework:spring- context:jar:3.0.5.RELEASE,org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,org.hibernate:hibernate-core:jar:3.6.0.Final,org.hibernate:hibernate-commons-注释:jar:3.2.0.Final,org.aspectj:aspectjweaver:jar:1.6.8,commons-lang:commons-lang:jar:2.5,mysql:mysql-connector-java:jar:5.1.13:失败转移org.springframework:spring-context:jar:3.0.5.RELEASE来自http://repo1.maven.org/maven2缓存在本地存储库中,在中心的更新间隔过去或更新之前,不会重新尝试解析被迫 . 原始错误:无法传输工件org.springframework:spring-context:jar:3.0.5.RELEASE from central(http://repo1.maven.org/maven2):60000后没有收到回复
我不知道如何强制maven更新?
21 回答
-U
表示强制更新快照依赖项 . 发布依赖项无法以这种方式更新 .-U似乎强制更新所有依赖项 . 如果要更新单个依赖项而不使用clean或-U,可以将其从本地存储库中删除,然后进行构建 . 以下示例如果更新slf4j-api 1.7.1-SNAPSHOT:
如果您的本地存储库以某种方式被释放为发布jar而不是快照(
-U
和--update-snapshots
仅更新快照),则可以使用以下方法清除本地存储库:您可能希望再次清理并安装:
有关更多信息,请访问https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
你可以从
Eclipse IDE
有效地做到 . 当然,如果你正在使用它 .这里的所有答案都不适用于我 . 我用锤子方法:
这解决了问题:-)
以防万一有人只想更新项目的快照依赖项并且不想安装工件:
不要忘记在IDE中重新导入依赖项 . 在IDEA中,您需要右键单击pom文件并选择Maven - > Reimport
如果您不确定本地存储库中的内容,我建议使用以下选项触发构建:
这样你就可以确保 Build 一个洁净室环境 .
在我的情况下,我首先做了
mvn clean install -U
仍然它显示相同的错误然后我关闭项目和agian重新打开它 . 最后工作 .
我在其他情况下得到了错误 . 因此,我的解决方案可能对其他能够解决问题的人有用:
问题:我已将本地存储库复制到另一台计算机,该计算机与特殊存储库没有任何关联 . 所以maven试图针对无效的存储库检查工件 .
我的解决方案:删除_maven.repositories文件 .
这是Maven最讨厌的事情之一 . 对我来说,会发生以下情况:如果我添加一个请求更多依赖项的依赖项,但是连接速度越来越慢,它会在下载和超时时停止接收 . 虽然超时所有尚未获取的依赖项都在.m2缓存中用占位符标记,但Maven不会(从不)拾取它,除非我通过删除缓存中的占位符条目(如其他所述) .
因此,就我所知,Maven或更精确的Eclipse Maven插件有一个关于此的错误 . 有人应该报告这个 .
您需要检查
<maven_home>/conf
目录下的settings.xml文件 .我对android-maps-utils依赖有同样的错误 . 在依赖部分中使用aar类型包来解决我的问题 . 默认情况下,type是jar,因此可以检查下载存储库中的依赖项类型 .
要从Eclipse修复此问题:
1)在Maven pom.xml中添加以下依赖项并保存pom.xml文件 .
2)转到项目>> Maven >>更新项目
选择项目,然后单击“确定” .
3)可选步骤,如果在步骤2之前没有解决,则在执行步骤1之后执行下面的步骤
转到项目>> Maven >>更新项目>>选中“强制更新快照/版本”复选框
选择项目,然后单击“确定” .
重要的是要添加主要内容运行
mvn
with -U 和 without -U 的区别在于-U
将覆盖带有远程SNAPSHOT jar 的本地SNAPSHOT jar .如果您有proj的其他模块生成jar,则从本地
mvn install
创建本地SNAPSHOT jar .-U用于强制更新maven Repo . 使用
如果您使用 eclipse IDE 则:
选择项目 .
按alt F5,将弹出更新Maven项目的窗口 .
检查 - 强制更新快照/版本,然后单击“确定” .
我出于另外的原因遇到了这个问题 . 我去了maven资源库https://mvnrepository.com寻找最新版本的spring core,当时是5.0.0.M3 /存储库向我展示了我的pom.xml的这个条目:
天真傻瓜,我,我认为评论告诉我,jar位于默认存储库中 .
然而,经过大量的敲击之后,我在xml下面看到一条说明“注意:这个工件位于Alfresco公共存储库(https://artifacts.alfresco.com/nexus/content/repositories/public/)”
所以XML中的注释完全是误导性的 . jar位于另一个存档中,这就是为什么Maven找不到它!
我最近遇到了这个并运行以下修复了所有问题
我们可以使用以下命令强制获取发布和快照存储库的最新更新:
我有同样的错误并运行
mvn install -U
然后运行mvn install
为我工作 .mvn clean install -U
不起作用 . 但是mvn -U clean
后跟mvn clean install
呢 .