Clojure (leiningen,s3私人)如何在私人s3回购协议中搜索依赖关系?

Clojure (leiningen,s3私人)如何在私人s3回购协议中搜索依赖关系?,clojure,leiningen,Clojure,Leiningen,我正在尝试使用s3货车专用插件。我有两个lein项目: X:我制作了一个图书馆,专门用来搜索数据。有一些第三方依赖关系 Y:我为使用我的数据库制作的库,有X和一些第三方依赖项 我的~/.lein/profiles.clj文件中有以下内容: {:repl {:dependencies [[org.clojure/tools.nrepl "0.2.12"]]} :user {:plugins [[cider/cider-nrepl "0.10.0"] [s3-wag

我正在尝试使用s3货车专用插件。我有两个lein项目:

  • X:我制作了一个图书馆,专门用来搜索数据。有一些第三方依赖关系
  • Y:我为使用我的数据库制作的库,有X和一些第三方依赖项
我的~/.lein/profiles.clj文件中有以下内容:

{:repl {:dependencies [[org.clojure/tools.nrepl "0.2.12"]]}
 :user {:plugins [[cider/cider-nrepl "0.10.0"]
              [s3-wagon-private "1.2.0"]]
 :signing {:gpg-key "0xabcdef12"}
 :repositories [["private" {:url "s3p://acme/releases/"
                            :username :env
                            :passphrase :env}]]}}
当我在projectx中运行
lein deploy private
时,一切正常,它被部署到了S3

当我在项目Y中运行
lein deploy private
时,它抱怨无法找到项目X

Could not find artifact X:X:jar:0.7.0 in central (https://repo1.maven.org/maven2/)
Could not find artifact X:X:jar:0.7.0 in clojars (https://clojars.org/repo/)
This could be due to a typo in :dependencies or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.
换句话说,它不是在我的私人S3回购协议中寻找项目X。我该如何解决这个问题


更新:2016-04-25

丹尼尔·康普顿在评论中问道:

在项目Y中运行lein deps时会发生什么?从错误消息来看,项目Y中似乎没有存储库“private”

当我在项目Y中运行
lein deps
时,它不会给出任何错误:

(py3)aj-laptop:red aj$ lein deps
(:repositories detected in user-level profiles! [:user] 
See https://github.com/technomancy/leiningen/wiki/Repeatability)
因此,我在项目Y中的project.clj中添加了以下内容。这使得
lein deploy private
工作正常:

:repositories [["private" {:url "s3p://acme/releases/"
                           :username :env
                           :passphrase :env}]]

因此,项目Y似乎没有从我的~/.lein/profiles.clj文件中获取:存储库。但是ProjectX似乎很好地解决了这个问题。

问题在于
:repositories
是在用户
~/.lein/profiles.clj
文件中指定的。莱宁根。我怀疑这里有一个潜在的bug,可能是在Lein插件和依赖解析系统之间的交互中。因为通常不建议将
:repositories
放在您的用户配置文件中,人们可能以前没有遇到过这种情况


我认为最好的解决方案可能是在每个文件中添加
:repositories
,尽管这可能很烦人。

为了避免有人认为我没有对此进行尽职调查,我昨晚花了几个小时阅读了文档、github上的master projects.clj文件等,并尝试了一些变体。没有骰子。您可以试试在项目Y中运行
lein deps
时会发生什么?从您的错误消息来看,项目Y中似乎没有存储库“private”。这可能是一个bug。更可能的是,我只是不理解这里涉及的复杂之处。但是,是的,我同意,我应该将私有存储库信息放在单个project.clj文件中。