我正在尝试完成Enlive教程。
当我尝试在克隆的存储库中lein deps
或lein run
时,我遇到了这个问题:
已尝试使用没有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.))
您也可能有一个依赖项,其中包含对不安全存储库的引用,用于检索其自己的依赖项。如果发生这种情况,强烈建议添加一个
:exclusion
并报告具有执行此操作的依赖项的错误。
覆盖project.clj
中不安全的 HTTP 存储库 URL:
如果我在enlive-tutorial/project.clj
中覆盖以下存储库 URL,我就可以克隆enlive-tutorial
并成功执行lein deps
,只需将协议更改为 HTTPS:
:mirrors {"clojure" {:url "https://build.clojure.org/releases/"}
"clojure-snapshots" {:url "https://build.clojure.org/snapshots/"}}
看起来Moustache 是试图通过 HTTP 拉取其依赖项的传递依赖项。