lein Datomic :dev 协议给出了“不支持的协议:dev”

lein Datomic :dev protocol gives `Unsupported protocol :dev`

这是我无法摆脱的错误:

Unsupported protocol :dev  datomic.error/arg (error.clj:57)

我一直在按照找到的各种说明进行操作 here, here and here

在 project.clj 我在依赖项中有这个:

[com.datomic/datomic-pro "0.9.5350"]

当上面有 free 而不是 pro 时,这个项目运行良好。

还有 project.clj 中的这一行:

:repositories {"my.datomic.com" {:url "https://my.datomic.com/repo"
                                 :creds :gpg}}

在目录 ~/.lein 中,我有一个名为 credentials.clj.gpg 的加密文件,它是从 credentials.clj 文件生成的,如下所示:

{#"my\.datomic\.com" {:username "chris@xxxxxxx.org"
                      :password "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}

gpg-agent是运行宁。但这似乎也无济于事。

我的主要问题是我不知道这一切应该如何组合在一起。例如,lein 如何知道 public 键用于 解密 credentials.clj.gpg 文件? lein 是否使用来自“https://my.datomic.com/repo”页面的信息?

here 看来确实有一种方法可以使用 :dev 而无需 gpg 加密文件。

总结 我希望使用 lein 项目中的 :dev Datomic 数据库,但我发现的说明不够清晰,无法遵循。

更多信息 要验证您是否已将 datomic-pro 安装到计算机的 .m2 存储库中,这里是(示例)它最终的位置:

/home/your-unix-name/.m2/repository/com/datomic/datomic-pro/0.9.5385 

请注意,您不应该从它所在的 bin 目录中 运行 maven-install,而是从父目录中 - 这样它就可以获取 jar 文件实际上在父目录中。

安装 gpg-agent 是我做的最后一件事 - 最初的一个步骤 错过了。我认为您不必手动 运行 它。无论如何昨天 运行ning 没有帮助,但今天重新启动 IntelliJ 一个对话框 弹出要求输入密码的窗口,因此应用程序得到了 将 Unsupported protocol :dev 错误消息传递给新错误消息:

user=> (go)
ConnectException Connection refused  java.net.PlainSocketImpl.socketConnect (PlainSocketImpl.java:-2)

所以我启动了交易程序,现在应用程序已经完全过去了 :dev 的障碍是不受支持的协议。

使用 gpg 自动下载 Datomic 发行版是设置 Datomic 的一种选择。如果您不需要自动执行获取 Datomic 位的过程,您可以简单地使用随 Datomic 发行版打包的 bin/maven-install 脚本将 Datomic 安装到您的本地 Maven 仓库中。只需从 my.datomic.com 和 运行 bin/maven-install 从解压缩分发的根目录下载分发 zip 文件。

这个过程也被记录在案 here

最好的, 马歇尔