我使用Leiningen编写了一个Clojure项目,现在想将生成的jar添加到Sonatype Nexus服务器。我安装了lein-clojars,因为它带有一个push
命令,如果你想推送除Clojars之外的某个地方,它似乎接受一个可选的repo
arg。但是,每当我尝试这个时,我都会得到一个JSchException: Auth fail
。它似乎表明某处存在身份验证问题。
我能够将jar scp到Nexus,我也可以使用与Maven相同的settings.xml上传到这台机器,所以我相信这些都是正确的。
有没有什么好方法可以使用Leiningen推送到其他存储库?或者它真的只为Clojars打造?
答案 0 :(得分:5)
为了记录,Leiningen 1.5现在有一个部署任务,可以通过https推送到像Nexus和Archiva这样的Maven存储库:https://github.com/technomancy/leiningen/blob/master/src/leiningen/deploy.clj
答案 1 :(得分:3)
如果您正在推送真正的Maven存储库,那么最好使用Maven进行部署。有一个很好的Clojure插件:http://github.com/talios/clojure-maven-plugin
答案 2 :(得分:2)
不久前,Leiningen Google小组发生了相关的电子邮件交流;请看Phil Hagelberg的this message作为答案。
简而言之,显然不可能在JVM上使用DSA密钥。我不确定Maven是否/如何发现可以解决这个问题,但无论如何,lein-clojars
都没有。所以,你应该坚持使用scp
。
(顺便说一句,这也意味着lein-clojars
并不是真的推荐用于处理Clojars。另外,我很确定我错过了部分图片,因为显然它已经使用了与Clojars合作。我非常肯定的一件事是Leiningen在此时推动受保护的回购并没有多大帮助,而且我上面链接的信息与权威的权威解释一致。为什么会出现这种情况。)