我正在尝试使用s3-wagon-private插件.我有两个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}]]}}
当我在项目X中运行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
Daniel Compton在评论中问道:
What happens when you run lein deps in project Y? From your error message, it looks like the repository “private” isn’t present in project Y.
当我在项目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按预期部署私有工作:
:repositories [["private" {:url "s3p://acme/releases/"
:username :env
:passphrase :env}]]
所以似乎Project Y没有拿起:来自我的〜/ .lein / profiles.clj文件的存储库.但是Project X似乎很好地接受了它.
最佳答案 问题是:存储库是在用户〜/ .lein / profiles.clj文件中指定的. Leiningen
doesn’t really like this.我怀疑这里有一个潜在的错误,也许是在Lein插件和依赖解析系统之间的交互中.因为通常不建议将:存储库放在您的用户配置文件中,之前人们可能没有遇到此问题.
我认为最好的解决方案可能是添加:存储库到每个文件,尽管可能很烦人.