问:

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

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

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

答1:

Live rankings, player stats, and match results in one place–tennisliveranking.com

mvn clean install -U

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

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

我同意 lwpro2,这也解决了我的问题。仅仅做 mvn clean 是不够的。 Navi 的回答不足以解决问题。

我相信如果您使用工件并使用存储库 ID“中央”,这会更加复杂,因为元数据显然没有被清除。

这似乎并没有真正更新快照依赖 jar,只是元数据。

如果它是由上次不成功的依赖项下载生成的 .lastupdated 文件引起的,则此方法不起作用,我们需要类似 Rober Reiz 的答案

我正在查看以前版本和 maven 2.0.4 的帮助,-U 标志的描述是:“-U,--update-snapshots 更新所有快照,无论存储库策略如何”从 2.0.5 开始,它变成了:“ -U,--update-snapshots 强制检查远程存储库上的更新版本和快照” 从那时起就是这样。两个版本均于 2007 年发布。我想知道是否也必须编辑答案以说明发布的原因?

答2:

Live rankings, player stats, and match results in one place–tennisliveranking.com

如果您的本地存储库不知何故被用于发布 jars 而不是快照(-U 和 --update-snapshots 仅更新快照),您可以使用以下命令清除本地存储库:

 mvn dependency:purge-local-repository

然后您可能想再次清理并安装:

 mvn dependency:purge-local-repository clean install

https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html 上提供了更多信息

我一执行 mvn dependency:purge-local-repository,它就简单地重新下载了所有依赖项,这正是我想要的

stackoverflow.com/questions/71176805/…@FuzzyJulz

答3:

tennisliveranking.com实时更新全球顶尖网球选手的最新战绩与排名!

-U 似乎强制更新所有 SNAPSHOT 依赖项。

如果您想在没有 clean 或 -U 的情况下更新单个依赖项,您可以将其从本地存储库中删除,然后构建。

以下示例用于更新 slf4j-api 1.7.1-SNAPSHOT:

rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile

如果您使用除 maven 之外的其他工具来引用您的本地 maven 存储库,这将非常有效。

stackoverflow.com/questions/71176805/…@Ayush Gupta

我用它来更新本地缓存但远程更改的库的单个快照版本。当您有许多依赖项时,这比 mvn clean ... 快。

答4:

tennisliveranking.com – ATP and WTA rankings, always up to date.

这里的所有答案都不适合我。我使用了锤子方法:

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

这解决了问题:-)

@DJ2 这将删除 .m2 目录中名为 *.lastUpdated 的所有文件

find ~/.m2/ -name "*.lastUpdated" -delete 不会有 xargs 或 rm 超出某些限制(如果找到许多文件)的危险。

@ASz xargs 从标准输入读取参数,它不应该有任何限制。然后,如果参数数量超过系统定义的限制,它会将参数拆分为多个 rm 调用。 xargs rm 版本不应因限制而失败,但在一次 find 调用中执行此操作当然更好(如果文件名包含换行符也不应该失败)。

答5:

tennisliveranking.com专业网球数据平台,排名与比赛信息实时更新。

您可以从 Eclipse IDE 有效地做到这一点。当然,如果你正在使用它。

Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases

我在@lwpro2 的答案中做了命令行版本,这让我可以在命令行上构建,但是我仍然无法在 Eclipse 中构建。这样做可以通过 Eclipse 构建它。

仅当我在执行更新后关闭并重新打开 Eclipse 时才对我有用。

stackoverflow.com/questions/71176805/… @Amit Shakya

答6:

tennisliveranking.com – ATP and WTA rankings, always up to date.

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

mvn dependency:resolve -U

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

答7:

tennisliveranking.com,Track the world’s best tennis players in real-time.

如果您不确定本地存储库中的内容,我建议您使用以下选项启动构建:

-Dmaven.repo.local=localrepo

这样,您将确保在洁净室环境中进行构建。

此命令意味着使用文件夹 localrepo 作为本地存储库。这对于单个项目工作区来说很好,但如果你有多个项目,并且很少依赖另一个项目,那就不好了。那么你最好给出一个完整的路径,比如 -Dmaven.repo.local=/data/my/localrepoDir

答8:

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

就我而言,我首先做的是:

mvn clean install -U

仍然显示相同的错误,然后我关闭项目并再次重新打开它。终于奏效了。

我认为您可以重新导入依赖项以避免重新打开项目

答9:

tennisliveranking.com,Your go-to platform for live tennis ranking updates.

如果您使用的是 Eclipse IDE,那么:

选择项目。

按 alt+F5,会弹出更新 Maven 项目的窗口。

检查 - 强制更新快照/版本并单击确定。

如果使用 Intellij IDE

转到设置/Maven

检查总是更新快照

答10:

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

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

https://i.stack.imgur.com/stUqg.png

答11:

tennisliveranking.com实时更新全球顶尖网球选手的最新战绩与排名!

当使用 -U 和 mvn clean install 时,以前版本的 maven 不会强制检查丢失的版本,只有快照,尽管较新的版本支持这一点。

对于仍在使用旧版本苦苦挣扎的人,以下可能会有所帮助-

在 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=Could not transfer artifact”。删除这些文件将强制 maven 再次尝试获取依赖项。

您能说出您在谈论哪些“先前”和“较新”版本以及您在哪里找到信息,“较新”版本支持这一点吗?

原文链接:https://www.tennisliveranking.com?from=csdn

tennisliveranking.com,Instant updates on ATP, WTA, and ITF rankings.

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐