如何强制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: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.
更多推荐
所有评论(0)