我将我已经工作的项目导入到另一台计算机上,它开始下载依赖项。

显然我的网络连接崩溃了,现在我得到了以下信息:

    >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

如何强制maven更新?


当前回答

以防有人只想更新项目的快照依赖项而不想安装工件:

mvn dependency:resolve -U

不要忘记在IDE中重新导入依赖项。在IDEA中,您需要右键单击pom文件,并选择Maven ->重新导入

其他回答

我使用了IntelliJ IDE,我有一个类似的问题,为了解决这个问题,我在Maven选项卡中单击“为所有项目生成源代码和更新文件夹”。

mvn clean install -e -U -Dmaven.test.skip=true

-e详细异常 -U强制更新 -DskipTests不执行测试用例,但编译测试用例类,在目标/测试类下生成相应的类文件。 -Dmaven.test。Skip =true,不执行测试用例或编译测试用例类。使用maven。测试。Skip不仅跳过运行单元测试,还跳过编译测试代码。

一个小建议。如果使用IntelliJ Idea编译器,建议清理缓存

重要的是,使用-U和不使用-U运行mvn的主要区别是-U将用远程SNAPSHOT jar覆盖本地SNAPSHOT jar。

如果你的proj中有其他模块生成jar,则从本地mvn安装创建本地快照jar。

以前版本的maven在mvn clean install中使用-U时不强制检查丢失的版本,只检查快照,但新版本支持这一点。

对于那些还在为以前的版本而挣扎的人来说,下面的内容可能会有所帮助

在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由于任何原因(连通性/不存在等)无法下载依赖项时,它将添加“。错误=不能转移工件"在依赖项名称。lastUpdate文件在$home/下的相应文件夹。m2目录。删除这些文件将迫使maven再次尝试获取依赖项。

What maven does is, it downloads all your project's dependencies into your local repo (.m2 folder). Because of the internet causing issues with your local repo, you project is facing problems. I am not sure if this will surely help you or not but you can try deleting all the files within the repository folder inside the .m2 folder. Since there would be nothing in the local repo, maven would be forced to download the dependencies again, thus forcing an update. Generally, the .m2 folder is located at c:users:[username]:.m2