gpt4 book ai didi

maven - Maven 3 可以重新下载损坏的文件而不是使构建失败吗?

转载 作者:行者123 更新时间:2023-12-04 04:26:18 24 4
gpt4 key购买 nike

[WARNING] The POM for org.testng:testng:jar:5.14.10 is invalid,
transitive dependencies (if any) will not be available: 1 problem was
encountered while building the effective model for
org.testng:testng:5.14.10

[FATAL] Non-readable POM
/home/teamcity/.m2/repository/org/sonatype/oss/oss-parent/3/oss-parent-3.pom:
input contained no data @
/home/teamcity/.m2/repository/org/sonatype/oss/oss-parent/3/oss-parent-3.pom

损坏的文件发生在 ~/.m2 ,大家都知道。修复它就像删除损坏的文件一样简单,因此 Maven 可以重新下载它。但是,我不想手动 grep 日志、连接到构建代理并手动删除这些文件。可靠的构建应该能够处理这些问题。

有什么方法可以让 Maven 重新下载损坏的文件而不是使构建失败?我不想删除 ~/.m2在执行每个构建之前,因为它会使构建变得非常缓慢。

为什么会这样?我的一位客户的基础设施损坏了。虚拟机经常在没有任何通知的情况下重新启动。而且由于大部分时间都在执行构建,因此文件在例如 ~/.m2 .在这件事上我没有什么可以改变的,这是他们的服务器和他们的政策——或者只是无能。但是我必须手动修复构建。

最佳答案

就 Maven 3.0.4 而言,没有办法通过一次调用 maven 来解决这个问题。

你可以做的是编写一个聚合器插件,它逐步遍历 react 器中的每个模块,并通过 API 调用(而不是 mojo 注释)解决它们的依赖关系,从而允许捕获故障并清除和重试。

它不会捕获所有情况(例如插件依赖项),但如果你做了类似的事情

$ mvn org.mine.maven:resolve-all:resolve-all || rm -rvf ~/.m2/repository
$ mvn clean verify

它会更可靠。

如果您愿意需要 Maven 3.x,您可以编写一个构建扩展并将其放入 $MAVEN_HOME/lib并且构建扩展可以做与插件相同的技巧,但因为它在插件解析之前发挥作用,它可以捕捉插件的情况。

很多工作,就个人而言,一个好的 MRM 使重新下载变得愚蠢快速,在使用 Maven 的 8 年中,我可能有 3-4 次本地 repo 腐败......播放和元数据(pom)从一个解决,而 Artifact 来自另一个......只有一种情况是“错误下载的HTML”......所有这些都将被MRM阻止

关于maven - Maven 3 可以重新下载损坏的文件而不是使构建失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com