代码之家  ›  专栏  ›  技术社区  ›  Arthur Ulfeldt

雷宁根:缺少超级pom

  •  13
  • Arthur Ulfeldt  · 技术社区  · 15 年前

    如果我启用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。为什么这些包裹需要它,我在哪里可以得到它。

    6 回复  |  直到 12 年前
        1
  •  7
  •   Michał Marczyk    15 年前

    我认为这仅仅意味着maven不能满足您指定的依赖项。我查过了没有 org.clojure/swank-clojure 您的消息提到的三个存储库中的任何一个中的工件。对于clojure couchdb,您使用的版本——据我所知 its project.clj file on GitHub --取决于 org.clojure/clojure-http-client "1.0.0-SNAPSHOT" ,这在回购协议中也不存在。

    解决此问题的一种方法是将所需的jar安装到本地repo中。( 我好像记不住确切的命令…我马上去查。 参见 this page 为了得到指示。)然后Maven会从那里把它们捡起来。

    (顺便说一下,如果您想使用clojure+contrib 1.1.0,您可以只使用 "1.1.0" 作为版本字符串。两种都有 org.clojure/clojure org.clojure/clojure-contrib )

    哦,关于超级POM——来自 this page 在Maven的文档中:

    超级pom是maven的默认pom。除非显式设置,否则所有pom都会扩展super pom,这意味着super pom中指定的配置由为项目创建的pom继承。

    至于它是怎么进入你的错误信息的,我真的不知道。你可以将“maven”标签添加到这个问题中,或者用这个标签问一个单独的问题,让一些maven专家加入其中。

        2
  •  2
  •   Eric Normand    15 年前

    我认为项目打破依赖关系的情况仍然很普遍。很不幸,因为这真的破坏了我们的体验。

    我的解决办法是 http://clojars.org 找我需要的图书馆。通常有几个版本。我做了一些研究 http://github.com 看看哪个是最新的。然后我试着把它当作依赖。如果成功了,太好了!否则,我再试试。

    这是一个很长的过程,但我认为它正在好转。你应该看看这个过程!

        3
  •  1
  •   yayitswei    14 年前

    我在maven super pom依赖项上也遇到了同样的错误

    $ sudo lein deps
    

    它运行正常。不是一个理想的解决方案,但它对我有效。

        4
  •  1
  •   user61051    14 年前

    大约一年前,我偶然将swank clojure上传到org.clojure组。我很快就把它删除了,因为我和那个组织没有联系,所以这就是为什么找不到它的原因。我能问一下你在哪里找到错误版本的说明书以便改正吗?

        5
  •  0
  •   Tim Clemons    14 年前

    我对lein ring也有类似的问题,导致了 org.apache.maven:super-pom . 原来问题是 M2_HOME 设置为我工作时使用的maven版本。未定形 M2YHE 解决了这个问题。看起来,leiningen并不擅长处理奇怪的maven实现。

        6
  •  0
  •   user35443    12 年前

    Ubuntu 10.10 x86_64 ,和莱恩·德普斯在一起,我很烦 … 缺少5个必需的工件。

    对于工件:

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

    … 但是命令

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

    做这项工作。