2024年Clojure状态调查中分享您的想法!

欢迎!有关如何使用本平台的信息,请参阅关于页面。

0投票
工具

我的项目 edn 有一个过时的 Maven 链接,该链接已在2020年停止解析,因为 Maven 仅从2020年开始支持https

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

当从新电脑检索依赖项时,所有包都以类似以下错误失败:

下载中:从 central 下载 selmer/selmer/1.12.31/selmer-1.12.31.pom
下载已损坏:校验和验证失败,预期 <meta 但得到 ad208edec82716369dab76b6cbca3475a4ae2033

这是因为由于 AT&T dnsassist 而“下载的包”实际上成了 HTML 文件。

由于校验和失败,我预计下载的包会被删除,而不仅仅是保留为损坏的 HTML 文件。我不得不删除整个 .m2,修复仓库链接,然后重新下载以解决问题。

1 答案

0投票
by

我对这个问题进行了更深入的调查。通常,无效的 URL(如 http central url)会导致 UnknownHostException 并不下载任何内容。虽然不是那么美观,但我认为这在这种情况下已经很明确了。

您在使用dnsassist时所遇到的这种行为是看起来DNS已被重定向到一个HTML页面。我对dnsassist了解不多,但它听起来对我来说很可疑。在这种情况下,从Maven的角度来看,它请求一个URL的内容并获得一些返回的内容,然后将这些内容保存到文件中。校验和系统按预期工作——应该有一个文件X和一个校验和文件X.asc,后者应包含前者的内容校验和。由于dnsassist,这并不成立,因此报告了一个错误。作为Maven库的使用者,tools.deps/clj实际上对此无法有任何控制,只能打印结果,所以我看不到除了我们现在所做的事情外,我们还能做什么。

...