我在其他计算机上导入了我的工作项目,因此它开始下载依赖项。
显然在此期间我的互联网连接崩溃了。现在我明白了:
为漫画制作错误; org.apache.maven.lifecycle.LifecycleExecutionException: 无法在项目漫画上执行目标测试:无法解决项目漫画的依赖项测试:漫画测试:war:0.0.1-SNAPSHOT: 无法解决以下工件: org.springframework:弹簧上下文:罐:3.0.5.RELEASE, org.hibernate作为:休眠-的EntityManager:罐子:3.6.0.Final, org.hibernate作为:休眠核心:罐子:3.6.0.Final, org.hibernate作为:冬眠公地的注解:罐子:3.2.0.Final, org.aspectj:aspectjweaver:罐子:1.6.8, 公地琅:公地琅:罐:2.5,
mysql:mysql-connector-java:jar:5.1.13:无法传输org.springframework:来自http://repo1.maven.org/maven2的spring-context:jar:3.0.5.RELEASE缓存在本地存储库中,解析将在中心的更新间隔过去或强制更新之前不要重新尝试。
原始错误:无法传输工件org.springframework:spring-context:jar:3.0.5.RELEASE from central(http://repo1.maven.org/maven2):60000之后没有收到回复
我不知道如何强制maven更新?
答案 0 :(得分:1435)
mvn clean install -U
-U
表示强制更新 snapshot 依赖项。发布依赖项无法以这种方式更新。
答案 1 :(得分:76)
-U
似乎强制更新所有依赖项。
如果要更新单个依赖项而不使用clean或-U
,可以将其从本地存储库中删除,然后进行构建。
以下示例是否用于更新slf4j-api 1.7.1-SNAPSHOT
:
rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
答案 2 :(得分:65)
如果您的本地存储库以某种方式被释放用于发布jar而不是快照(--update-snapshots
和 mvn dependency:purge-local-repository
仅更新快照),则可以使用以下方法清除本地存储库:
mvn dependency:purge-local-repository clean install
您可能希望再次清理并安装:
[dom-bind::_annotatedComputationEffect]: compute method
提供了更多信息
答案 3 :(得分:43)
这里的所有答案对我都不起作用。我用锤子方法:
find ~/.m2/ -name "*.lastUpdated" | xargs rm
解决了这个问题:-)
答案 4 :(得分:42)
您可以从Eclipse IDE
有效地执行此操作。当然,如果你正在使用它。
Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
答案 5 :(得分:19)
以防万一有人只想更新项目的快照依赖项并且不想安装工件:
mvn dependency:resolve -U
不要忘记在IDE中重新导入依赖项。在IDEA中,您需要右键单击pom文件并选择Maven - >再次导入
答案 6 :(得分:10)
如果您不确定本地存储库中的内容,我建议使用以下选项触发构建:
-Dmaven.repo.local=localrepo
这样你就可以确保建立一个洁净室环境。
答案 7 :(得分:7)
在我的情况下,我先做了
mvn clean install -U
仍然它显示相同的错误然后我关闭项目并且agian重新打开它。最终工作。
答案 8 :(得分:2)
我在其他情况下得到了错误。 所以我的解决方案可能对那些解决这个问题的人有用:
问题: 我已将本地存储库复制到另一台计算机,该计算机与特殊存储库没有任何关联。 所以maven试图检查无效存储库中的工件。
我的解决方案: 删除_maven.repositories文件。
答案 9 :(得分:2)
这是Maven最讨厌的事情之一。对我来说,会发生以下情况:如果我添加一个请求更多依赖项的依赖项,但越来越多,但连接速度很慢,它会在下载和超时时停止接收。虽然超时所有尚未获取的依赖项都会在.m2缓存中用占位符标记,但Maven不会(从不)选择它,除非我通过删除缓存中的占位符条目(如其他所述)。
据我所知,Maven或更精确的Eclipse Maven插件有一个关于此的错误。有人应该报告这个。
答案 10 :(得分:2)
如果您使用的是 eclipse IDE ,则:
按alt + F5,将弹出“更新Maven项目”窗口。
检查-强制更新快照/发行版,然后单击“确定”。
答案 11 :(得分:2)
您需要检查<maven_home>/conf
目录下的settings.xml文件。
答案 12 :(得分:1)
以前的Maven版本在将-U与mvn全新安装一起使用时,并未强制检查缺少发行版,尽管新版本支持快照。
对于仍在努力使用旧版本的人,以下内容可能会有所帮助-
在Windows上:
cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i
在Linux上:
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
每当maven由于任何原因而无法下载依赖项(连接性/不存在等)时,它将在$ home / .m2下相应文件夹中的dependency-name.lastUpdate文件中添加“ .error =无法传输工件”目录。删除这些文件将迫使Maven再次尝试获取依赖项。
答案 13 :(得分:1)
答案 14 :(得分:1)
从Eclipse修复此问题:
1)在Maven pom.xml中添加以下依赖项并保存pom.xml文件。
Entry
2)转到项目&gt;&gt; Maven&gt;&gt;更新项目
选择项目,然后单击“确定”。
3)可选步骤,如果在步骤2之前未解决,则在执行步骤1后执行以下步骤
转到项目&gt;&gt; Maven&gt;&gt;更新项目&gt;&gt;选中复选框&#39;强制更新快照/版本&#39;
选择项目,然后单击“确定”。
答案 15 :(得分:1)
我对android-maps-utils依赖有同样的错误。在依赖部分中使用aar类型包来解决我的问题。 默认情况下,type是jar,因此可以检查下载存储库中的依赖项类型。
答案 16 :(得分:0)
重要的是要补充说,{ - 1}} 与-U 和不使用-U 的主要区别在于mvn
将覆盖您的本地SNAPSHOT罐装有远程SNAPSHOT罐子。
本地SNAPSHOT罐子是从本地-U
创建的,如果你有proj的其他模块生成罐子。
答案 17 :(得分:0)
-U用于强制更新maven Repo。 使用
mvn -U clean install
答案 18 :(得分:0)
我在这里尝试了所有答案,但似乎没有任何效果。首先重新启动计算机,然后运行mvn clean install -U
。那解决了我的问题。
答案 19 :(得分:0)
maven的作用是,它将项目的所有依赖项下载到本地存储库(.m2文件夹)中。由于互联网导致本地存储库出现问题,因此您的项目面临着问题。我不确定这是否对您有帮助,但是您可以尝试删除.m2文件夹内存储库文件夹中的所有文件。由于本地存储库中没有任何内容,因此maven将被迫再次下载依赖项,从而强制进行更新。 通常,.m2文件夹位于c:users:[用户名] :. m2
答案 20 :(得分:-1)
我出于另外的原因遇到了这个问题。我去了maven存储库https://mvnrepository.com,寻找最新版本的spring core,当时是5.0.0.M3 /存储库向我展示了我的pom.xml的这个条目:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.0.M3</version>
</dependency>
我是天真的傻瓜,我以为评论告诉我jar是位于默认存储库中的。
然而,在经过大量的敲击之后,我在xml下方看到一条说明&#34;注意:这个工件位于Alfresco公共存储库(https://artifacts.alfresco.com/nexus/content/repositories/public/)&#34;
因此,XML中的注释完全是误导性的。 jar位于另一个档案库中,这就是Maven无法找到它的原因!
答案 21 :(得分:-3)
我最近遇到了这个并运行以下修复了所有问题
mvn -fae install
答案 22 :(得分:-3)
我遇到了同样的错误,正在运行mvn install -U
,然后运行mvn install
为我工作。
答案 23 :(得分:-3)
我们可以使用以下命令强制获取发布和快照存储库的最新更新:
mvn --update-snapshots clean install
答案 24 :(得分:-4)
mvn clean install -U
无效。但mvn -U clean
后跟mvn clean install
。