开发者

Push to Nexus Using Leiningen

I wrote a Clojure project using Leiningen and would now like to add the resulting jar to a Sonatype Nexus server. I installed lein-clojars, since this comes with a push command that seems to accept an optional repo arg if you would like to push somewhere besides Clojars. However, whenever I try this, I get a JSchException: Auth fail. It seems to indicate that there is an authentication problem somewhere.

I am able to scp the jar to Nexus, and I am also able to use this same settings.xml with Maven to upload to this machine, so I'm fairly confident these are both correct.

开发者_Python百科Is there any good way to use Leiningen to push to other repositories? Or is it really only built for Clojars?


For the record, Leiningen 1.5 now has a deploy task that can push to Maven repositories like Nexus and Archiva over https: https://github.com/technomancy/leiningen/blob/master/src/leiningen/deploy.clj


If you're pushing to a real Maven repository, you're probably better off using Maven for deployment. There's a good Clojure plugin: http://github.com/talios/clojure-maven-plugin


A relevant exchange of e-mails happened a short while ago on the Leiningen Google group; see this message by Phil Hagelberg for the answer.

In short, it is apparently impossible to use DSA keys on the JVM. I'm not sure if/how Maven finds it possible to deal with this, but at any rate, lein-clojars doesn't. So, you should just stick to scp instead.

(Incidentally, this also means that lein-clojars is not really recommended for dealing with Clojars either. Also, I'm pretty sure that I'm missing some part of the picture, since apparently it used to work with Clojars. The one thing I am pretty sure about is that Leiningen won't be much help in pushing to protected repos at this time and that the message I linked to above is as close to an authoritative explanation of why this is that case as anything.)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜