我正在尝试完成Enlive 教程。
当我尝试lein deps或lein run在克隆的 repo 中时,我遇到了这个问题:
试图在没有 TLS 的情况下使用不安全的 HTTP 存储库。
Leiningen 的最新版本禁用了不安全的依赖下载。从常见问题:
问:我知道了
Tried to use insecure HTTP repository without TLS,那是关于什么的?答:这意味着您的项目被配置为从不使用 TLS 加密的存储库下载依赖项。这是非常不安全的,并且会使您面临简单执行的中间人攻击。在极少数情况下,您不关心运行项目的机器的安全性,或者可以确保唯一的 http 流量通过受信任的网络流出,您可以通过将其放入
project.clj文件来重新启用对不安全存储库的支持:
;; never do this
(require 'cemerick.pomegranate.aether)
(cemerick.pomegranate.aether/register-wagon-factory!
"http" #(org.apache.maven.wagon.providers.http.HttpWagon.))
Run Code Online (Sandbox Code Playgroud)
您也可能有一个依赖项,其中包括对不安全存储库的引用,用于检索其自身的依赖项。如果发生这种情况,强烈建议添加一个
:exclusion并报告具有执行此操作的依赖项的错误。
覆盖不安全的 HTTP 存储库 URL project.clj:
如果我覆盖 中的以下存储库 URL ,我可以克隆enlive-tutorial并lein deps成功执行enlive-tutorial/project.clj,只需将协议更改为 HTTPS:
:mirrors {"clojure" {:url "https://build.clojure.org/releases/"}
"clojure-snapshots" {:url "https://build.clojure.org/snapshots/"}}
Run Code Online (Sandbox Code Playgroud)
Mustache似乎是试图通过 HTTP 拉取其依赖项的传递依赖项。