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

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

    >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更新?


当前回答

这里所有的答案对我都不起作用。我用了锤子法:

find ~/.m2/ -name "*.lastUpdated" | xargs rm

这解决了问题:-)

其他回答

mvn clean install -U

-U表示强制更新快照依赖项。

如果之前从未成功下载过发布依赖项,则将以这种方式更新。裁判:https://stackoverflow.com/a/29020990/32453

我遇到这个问题的原因不同。我访问了maven存储库https://mvnrepository.com,寻找spring核心的最新版本,当时是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下面说“注:这个工件它位于Alfresco公共存储库(https://artifacts.alfresco.com/nexus/content/repositories/public/)”

所以XML中的注释完全是误导性的。这个罐子位于另一个存档中,这就是Maven找不到它的原因!

如果你正在使用eclipse IDE,那么:

选择项目。 按alt+F5,更新Maven项目窗口将弹出。 检查-强制更新快照/发布,单击“确定”。

如果使用Intellij IDE

进入settings/Maven 总是更新快照

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

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

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

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