如果我启用了clojure-couchdb或swank-clojure,则lein deps
会失败,因为org.apache.maven:super-pom:jar:2.0缺失
: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"]
])
此错误:
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)
什么是超级pom。为什么这些包需要它,我在哪里可以得到它。
答案 0 :(得分:7)
我认为这只是意味着Maven无法满足您指定的依赖关系。我已经检查过你的邮件提到的三个存储库中的任何一个都没有org.clojure/swank-clojure
工件。对于clojure-couchdb,你正在使用的版本 - 据我所知its project.clj file on GitHub - 取决于org.clojure/clojure-http-client "1.0.0-SNAPSHOT"
,它在回购中也不存在。
解决此问题的一种方法是将您想要的罐子安装到本地仓库中。 (我似乎无法记住确切的命令......会在一分钟内查找。请参阅例如this page获取指示。)然后Maven将从那里接收它们。
(顺便说一句,如果您想使用Clojure + contrib 1.1.0,您现在可以使用"1.1.0"
作为版本字符串。这适用于org.clojure/clojure
和org.clojure/clojure-contrib
。)< / p>
哦,关于超级POM - 来自Maven的文档中的this page:
Super POM是Maven的默认POM。除非明确设置,否则所有POM都会扩展Super POM,这意味着Super POM中指定的配置将由您为项目创建的POM继承。
至于它如何进入你的错误信息,我真的不知道。你可以在这个问题上添加“maven”标签,或者只是问一个带有该标签的问题,让一些Maven专家加入其中。
答案 1 :(得分:2)
我认为项目破坏了依赖关系仍然很常见。这很不幸,因为它确实破坏了这种体验。
我的解决方案是转到http://clojars.org并搜索我需要的库。通常有几个版本。我对http://github.com进行了一些研究,看看哪一个是最新的。然后我尝试将其作为依赖。如果它工作,太棒了!否则,我会尝试另一个。
这是一个漫长的过程,但我认为它正在变得更好。你应该看过这个过程!
答案 2 :(得分:1)
我在maven super-pom依赖项上遇到了同样的错误,当我这样做时
$ sudo lein deps
它运行没有错误。不是一个理想的解决方案,但它对我有用。
答案 3 :(得分:1)
我在一年前意外地将swank-clojure上传到了org.clojure组。我之后很快就删除了它,因为我没有与该组相关联,因此无法找到它。我可以问你在哪里找到错误版本的说明,以便纠正吗?
答案 4 :(得分:0)
我遇到类似的lein-ring问题导致org.apache.maven:super-pom
依赖失败。事实证明问题是M2_HOME
被设置为我用于工作的Maven版本。取消设置M2_HOME
解决了问题。 leiningen似乎与奇怪的Maven实现不一致。
答案 5 :(得分:0)
使用Ubuntu 10.10 x86_64
和lein deps,我很讨厌
...
缺少5个必需的工件。
for artifact:
org.apache.maven:super-pom:jar:2.0
... 但命令
sudo LEIN_ROOT=1 ~/bin/lein deps;
sudo chown -R $USER:$USER lib
做好这份工作。