如何强制maven更新?
我在另一台计算机上导入了我已经在工作的项目,它开始下载依赖项 显然我的互联网连接崩溃了,现在我得到了以下信息:如何强制maven更新?,maven,Maven,我在另一台计算机上导入了我已经在工作的项目,它开始下载依赖项 显然我的互联网连接崩溃了,现在我得到了以下信息: >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:c
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
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-annotations: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: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
mvn dependency:purge-local-repository
如何强制maven更新
mvn clean install -U
-U
表示强制更新快照依赖项
如果以前从未成功下载过版本依赖项,则将以这种方式更新它们。ref:
-U
似乎强制更新所有快照依赖项
如果您想在不使用clean或-U
的情况下更新单个依赖项,您可以将其从本地回购中删除,然后构建
以下示例用于更新slf4j api 1.7.1-SNAPSHOT
:
rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
如果您不确定本地存储库中有什么,我建议使用以下选项启动构建:
-Dmaven.repo.local=localrepo
这样,您将确保在洁净室环境中进行构建。我在其他上下文中遇到了错误。 因此,我的解决方案可能对其他在这个问题上左右为难的人有用: 问题是: 我已将本地存储库复制到另一台计算机,该计算机与特殊存储库没有连接。 因此maven尝试根据无效的存储库检查工件 我的解决方案:
删除_maven.repositories文件。您可以通过
EclipseIDE
有效地执行此操作。当然,如果你正在使用它
Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
就我而言,我首先做的是:
mvn clean install -U
但它仍然显示相同的错误,然后我关闭了项目并再次打开它。终于成功了。mvn清洁安装-U不起作用。然而,
mvn-U clean
之后是mvn clean install
这里所有的答案对我都不适用。我使用了锤击法:
find ~/.m2/ -name "*.lastUpdated" | xargs rm
这解决了问题:-)这是Maven最恼人的事情之一。对我来说,会发生以下情况:如果我添加了一个依赖项,请求更多的依赖项和越来越多的依赖项,但连接速度很慢,那么在下载和超时时,它可能会停止。在超时时,所有尚未获取的依赖项都会在.m2缓存中用占位符标记,Maven不会(永远)获取它,除非我通过移除占位符从缓存中移除占位符条目(如其他声明所述)
所以在我看来,Maven或者更确切地说EclipseMaven插件在这方面有一个bug。应该有人报告此情况。我们可以使用以下命令强制获取最新版本和快照存储库更新:
mvn --update-snapshots clean install
如果您的本地存储库在某种程度上被释放jar而不是快照搞得一团糟(
-U
和-updatesnapshots
仅更新快照),您可以使用以下方法清除本地repo:
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
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-annotations: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: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
mvn dependency:purge-local-repository
然后,您可能需要再次清理和安装:
mvn dependency:purge-local-repository clean install
更多信息请访问我遇到了相同的错误,运行
mvn安装-U
然后运行mvn安装
对我来说很有效。我遇到了与android maps utils依赖项相同的错误。在依赖项部分使用aar类型包解决了我的问题。
默认情况下,类型是jar,所以可以检查存储库中下载的依赖项的类型 我有这个问题是因为另一个原因。我去maven存储库寻找最新版本的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>
org.springframework
)"
因此XML中的注释完全是误导性的。jar位于另一个存档中,这就是Maven找不到它的原因!需要补充的是,使用-U运行mvn
和不使用-U运行的主要区别在于-U
将使用远程SNA覆盖本地快照jarPSHOT罐子
本地快照JAR是从本地mvn安装创建的,如果您的项目中有其他模块生成JAR。要从Eclipse修复此问题,请执行以下操作:
1) 在Maven pom.xml中添加以下依赖项并保存pom.xml文件
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.3.1</version>
</dependency>
com.thoughtworks.xstream
xstream
1.3.1
2) 转到project>>Maven>>更新项目
选择项目并单击“确定”
3) 可选步骤,如果直到步骤2才解决,则在执行步骤1后执行以下步骤
转到project>>Maven>>Update project>>选中复选框“强制更新快照/发布”
选择项目并单击“确定”。以防有人只想更新项目的快照依赖项而不想安装工件:
mvn dependency:resolve -U
别忘了在IDE中重新导入依赖项。在IDEA中,您需要右键单击pom文件并选择Maven->reimport您需要检查/conf
目录下的settings.xml文件。我最近遇到了这个问题,运行以下程序修复了所有问题
mvn -fae install
-U用于强制更新maven Repo。
使用
如果您正在使用eclipse IDE,则:
- 选择项目
- 按alt+F5,将弹出更新Maven项目的窗口
- 选中-强制更新快照/版本,然后单击“确定”
如果使用Intellij IDE
- 转到设置/Maven
- 选中“始终更新快照”
我在这里尝试了所有答案,但似乎没有任何效果。首先重新启动我的计算机,然后运行mvn clean install-U
。这解决了我的问题。maven所做的是,它将所有项目的依赖项下载到本地repo(.m2文件夹)中。由于internet导致您的本地repo出现问题,您的project正面临问题。我不确定这是否一定会对您有所帮助,但您可以尝试删除.m2文件夹中repository文件夹中的所有文件。由于本地repo中没有任何内容,maven将被迫再次下载依赖项,因此正在搜索更新。
通常,.m2文件夹位于c:users:[用户名]:.m2我使用了IntelliJ IDE,我遇到了一个类似的问题,为了解决这个问题,我单击了I
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;