2010-03-14 10 views
13

si habilito EITH la clojure-couchdb o Swank-clojure continuación lein deps falla porque org.apache.maven: super-pom: Tarro: 2.0 faltaLeiningen: falta super-pom

: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"] 
       ]) 

este 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) 

¿Qué es super-pom. ¿Por qué estos paquetes lo necesitan y dónde puedo obtenerlo?

Respuesta

8

Creo que esto solo significa que Maven no pudo satisfacer las dependencias que usted especificó. He comprobado que no hay artefacto org.clojure/swank-clojure en ninguno de los tres repositorios que menciona su mensaje. Para clojure-couchdb, la versión que está utilizando, por lo que puedo ver al mirar its project.clj file on GitHub, depende de org.clojure/clojure-http-client "1.0.0-SNAPSHOT", que tampoco existe en el repositorio.

Una forma de evitar este problema es instalar las jarras que desee en su repositorio local. ( Parece que no recuerdo el comando exacto ... lo buscaré en un minuto. Para obtener instrucciones, por favor, consulte this page). Entonces Maven simplemente los recogerá desde allí.

(Por cierto, si desea utilizar Clojure + contrib 1.1.0, sólo puede utilizar "1.1.0" como las cadenas de versión ahora que es tanto para org.clojure/clojure y org.clojure/clojure-contrib..)

Ah, y sobre el POM súper - - a partir this page en documentos de Maven:

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.

en cuanto a la forma en que se metió en su mensaje de error, no tengo ni idea de honestidad. Puede agregar la etiqueta "maven" a esta pregunta o simplemente hacer una pregunta por separado con esa etiqueta para obtener algunos gurús Maven en ella.

+0

Por cierto, no estoy seguro si esto debería ser parte de la respuesta correcta, pero si incluye una dependencia de Swank solo para usar 'lein swank', debe usar un' leiningen/lein-swank "1.1.0" ' en lugar. Además, póngalo en su ': dev-dependencias' (tenga en cuenta que todavía están incluidos, por ejemplo, en uberjars por ahora, pero tal vez algún día, lein será más inteligente ...). –

+0

en realidad estoy usando ambos. leain swank como un depósito de acciones y swank para un "control remoto" en el servidor en ejecución. (Eso probablemente irá cuando enviemos esto) ¡swank es oficialmente necesario! –

+0

Eso es verdad. :-) Para un swank incrustado, puede usar una dependencia 'swank-clojure" 1.1.0 "'; ver http://clojars.org/repo/swank-clojure/swank-clojure/ para obtener una lista (de tipo) de las versiones disponibles. ¡He probado esto con 'lein deps' y funciona bien! –

2

Creo que todavía es común que los proyectos tengan dependencias rotas. Es desafortunado, porque realmente marte la experiencia.

Mi solución es ir al http://clojars.org y buscar la biblioteca que necesito. Por lo general, hay algunas versiones. Investigo un poco en http://github.com para ver cuál está más actualizado. Entonces intento eso como una dependencia. Si funciona, ¡genial! De lo contrario, pruebo con otro.

Es un proceso largo, pero creo que está mejorando. ¡Deberías haber visto el proceso antes!

1

que estoy recibiendo el mismo error en la dependencia super-pom experto, y cuando lo haga

$ sudo lein deps 

Se ejecuta sin error. No es una solución ideal, pero funciona para mí.

+0

sudo lein deps instalará los deps en /root/.m2 en lugar de /home/you/.m2/ y probablemente obtenga el mismo resultado al eliminar primero /home/you/.m2/? –

+0

No tengo/root en mi Mac, pero al menos eliminar .m2 lo solucionó. También tuve que volver a instalar Leiningen, por supuesto. – Pepijn

+0

Ver mi solución. Como sudo se ejecuta en un shell de superusuario, su configuración de entorno 'M2_HOME' no está disponible para que se arruine con los trabajos. –

1

He subido accidentalmente swank-clojure al grupo org.clojure hace aproximadamente un año. Lo eliminé pronto, ya que no estoy asociado con ese grupo, así que es por eso que no se puede encontrar. ¿Puedo preguntar dónde encontraste las instrucciones con la versión errónea para que pueda corregirse?

0

Tuve un problema similar con lein-ring que causaba una falla de dependencia con respecto a org.apache.maven:super-pom. Resulta que el problema fue que M2_HOME se estableció en una versión de Maven que uso para el trabajo. Desarreglo M2_HOME solucionó el problema. Parece que leiningen no funciona bien con las extrañas implementaciones de Maven.

+0

Tuve el mismo problema de super-pom con lein, y resultó que maven-metadata-clojure-releases.xml en el caché de maven para clojure estaba dañado. Contenía la salida de lein diciéndome que no sabía dónde encontrar la dependencia, ya que no se podía conectar a mi instalación de Nexus. –

0

Con Ubuntu 10.10 x86_64, con deps Lein, me sale molesto ... 5 artefactos necesarios están desaparecidos.

de artefacto:

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

... pero los comandos

sudo LEIN_ROOT=1 ~/bin/lein deps; 
sudo chown -R $USER:$USER lib 

hacer el trabajo.