Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

leiningen: missing super-pom

if I enable eith the clojure-couchdb or swank-clojure then lein deps fails because org.apache.maven:super-pom:jar:2.0 is missing

:dependencies [[org.clojure/clojure "1.1.0-master-SNAPSHOT"]
               [org.clojure/clojure-contrib "1.0-SNAPSHOT"]
               [clojure-http-client "1.0.0-SNAPSHOT"]
               [org.apache.activemq/activemq-core "5.3.0"]
;              [org.clojars.the-kenny/clojure-couchdb "0.1.3"]
;              [org.clojure/swank-clojure "1.1.0"]
              ])

this error:

  Path to dependency: 
1) org.apache.maven:super-pom:jar:2.0
2) org.clojure:swank-clojure:jar:1.1.0

----------
1 required artifact is missing.

for artifact: 
 org.apache.maven:super-pom:jar:2.0

from the specified remote repositories:  
  clojars (http://clojars.org/repo/),
  clojure-snapshots (http://build.clojure.org/snapshots),
  central (http://repo1.maven.org/maven2)

what is super-pom. why do these packages need it and where can I get it.

like image 462
Arthur Ulfeldt Avatar asked Mar 14 '10 22:03

Arthur Ulfeldt


3 Answers

I think this just means that Maven wasn't able to satisfy the dependencies you specified. I've checked there's no org.clojure/swank-clojure artifact in any of the three repositories your message mentions. For clojure-couchdb, the version you're using -- as far as I can tell from looking at its project.clj file on GitHub -- depends on org.clojure/clojure-http-client "1.0.0-SNAPSHOT", which doesn't exist in the repos either.

One way around this problem is to install the jars you want into your local repo. (I can't seem to remember the exact command... will look it up in a minute. See e.g. this page for instructions.) Then Maven will just pick them up from there.

(BTW, if you want to use Clojure + contrib 1.1.0, you can just use "1.1.0" as the version strings now. That's for both org.clojure/clojure and org.clojure/clojure-contrib.)

Oh, and about the super POM -- from this page in Maven's docs:

The Super POM is Maven's default POM. All POMs extend the Super POM unless explicitly set, meaning the configuration specified in the Super POM is inherited by the POMs you created for your projects.

As for how it got into your error message, I've honestly no idea. You could add the "maven" tag to this question or just ask a separate question with that tag to get some Maven gurus onto it.

like image 100
Michał Marczyk Avatar answered Nov 06 '22 06:11

Michał Marczyk


I think it's still common that projects have broken dependencies. It's unfortunate, because it really mars the experience.

My solution is to go onto http://clojars.org and search for the library I need. Usually there are a few versions. I do a little research on http://github.com to see which one is most up to date. Then I try that one as a dependency. If it works, great! Otherwise, I try another one.

It's a long process, but I think it is getting better. You should have seen the process before!

like image 2
Eric Normand Avatar answered Nov 06 '22 06:11

Eric Normand


I'm getting the same error on the maven super-pom dependency, and when I do

$ sudo lein deps

It runs without error. Not an ideal solution, but it works for me.

like image 1
yayitswei Avatar answered Nov 06 '22 06:11

yayitswei