请在2024年Clojure现状调查!分享您的想法。

欢迎!有关这个网站是如何运作的更多信息,请参阅关于页面。

0
工具

我的项目edn有一个过时的Maven链接,由于Maven在2020年改变了到只使用https,所以它不再解析。

:mvn/repos {"central" {:url "http://central.maven.org/maven2/"}

当从新电脑检索依赖项时,所有包都无法正常工作,出现错误,例如

正在下载:从central下载selmer/selmer/1.12.31/selmer-1.12.31.pom
下载损坏:校验和验证失败,预期为<><;元,但实际是ad208edec82716369dab76b6cbca3475a4ae2033

这是由于AT&T dnsassist的错误,下载的"包"实际上是HTML文件。

由于校验和失败,我期望删除下载的包,而不是保留 broken html 文件。我不得不删除整个 .m2,修复仓库链接,然后再重新下载来修复。

1 答案

0

我对此做了一些进一步的调查,通常无效的URL(如http central URL)会由于UnknownHostException失败而不会下载任何东西。虽然不是特别美观,但我认为这个例子中失败的原因非常清晰。

使用dnsassist时,您遇到的行为是它看起来像DNS被重定向到了一个HTML页面。我对dnsassist了解不多,但在我听来这相当可疑。在这种情况下,从Maven的角度来看,它在请求一个URL的内容,并收到了一些反馈,然后将其保存到文件中。校验和系统按既定设计运行——应该有文件X和一个校验和文件X.asc,后者应该包含前一个文件的校验和。但是由于dnsassist,这一点不再成立,报告了一个错误。作为Maven库的用户,tools.deps/clj实际上无法对此进行任何控制,除了打印结果,因此我认为我们在这个案例中除了我们正在做的事情外,没有其他可以主动做的事情。

...