Leiningen: faltando super-pom
Pergunta
se eu permitir eith o clojure-couchdb ou Swank-clojure então lein deps
falha porque org.apache.maven: super-pom: jar: 2.0 está faltando
: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 erro:
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)
o que é super-pom. por que esses pacotes precisam e onde posso obtê-lo.
Solução
Eu acho que isso apenas significa que Maven não foi capaz de satisfazer as dependências especificadas. Eu verifiquei não há nenhum artefato org.clojure/swank-clojure
em qualquer um dos três repositórios sua mensagem menciona. Para clojure-couchdb, a versão que você está usando - tanto quanto eu posso dizer de olhar para seu arquivo project.clj no GitHub -. depende org.clojure/clojure-http-client "1.0.0-SNAPSHOT"
, que não existe nos repositórios tanto
Uma maneira de contornar este problema é instalar os frascos que você quer em seu repo local. ( Eu não consigo lembrar o comando exato ... vai procurá-lo em um minuto. Ver, por exemplo desta página para obter instruções.) Então Maven só vai pegá-los de lá.
(BTW, se você quiser usar Clojure + contrib 1.1.0, você pode apenas usar "1.1.0"
como a versão cordas agora. Isso é para tanto org.clojure/clojure
e org.clojure/clojure-contrib
.)
Ah, e sobre o super POM - de desta página em docs do Maven:
O Super POM POM é padrão do Maven. Todos os POMs estender o Super POM a menos que explicitamente definido, ou seja, a configuração especificada no Super POM é herdada pelos POMs você criou para os seus projectos.
Como para como ele chegou em sua mensagem de erro, não tenho sinceramente nenhuma idéia. Você pode adicionar a tag "maven" a esta pergunta ou apenas fazer uma pergunta separada com essa marca para obter alguns gurus Maven para ele.
Outras dicas
Eu acho que ainda é comum que os projetos têm quebrado dependências. É lamentável, porque ele realmente mars a experiência.
A minha solução é ir para http://clojars.org e procurar a necessidade biblioteca I. Normalmente existem algumas versões. Eu faço uma pequena pesquisa sobre http://github.com para ver qual é o mais atualizado. Então eu tento que se como uma dependência. Se funcionar, ótimo! Caso contrário, eu tentar outro.
É um processo longo, mas acho que ele está ficando melhor. Você deveria ter visto o processo antes!
Eu estou recebendo o mesmo erro na dependência super-pom Maven, e quando eu faço
$ sudo lein deps
Ele é executado sem erros. Não é uma solução ideal, mas funciona para mim.
eu acidentalmente enviado Swank-clojure ao grupo org.clojure cerca de um ano atrás. Eu apaguei-o logo após desde que eu não estou associado a esse grupo, é por isso que ele não pode ser encontrado. Posso perguntar onde você encontrou as instruções com a versão errada para que possa ser corrigido?
Eu tive um problema semelhante com lein-ring causando uma falha de dependência em relação a org.apache.maven:super-pom
. Acontece que o problema era que M2_HOME
foi criado para uma versão do Maven eu uso para o trabalho. M2_HOME
desactivação corrigiu o problema. Parece que Leiningen não jogar bonito com implementações Maven estranhos.
Com Ubuntu 10.10 x86_64
, com lein deps, fico chato
...
5 artefatos necessários estão faltando.
para Artefato:
org.apache.maven:super-pom:jar:2.0
... mas os comandos
sudo LEIN_ROOT=1 ~/bin/lein deps;
sudo chown -R $USER:$USER lib
fazer o trabalho.