Leiningen: отсутствует супер-пом

если я разрешаю eith 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)

что такое супер-пом. почему эти пакеты нуждаются в этом и где я могу его получить.

Ответ 1

Я думаю, это просто означает, что Maven не смог удовлетворить зависимости, которые вы указали. Я проверил там артефакт org.clojure/swank-clojure в любом из трех репозиториев, о которых говорится в вашем сообщении. Для clojure -couchdb, используемой вами версии, насколько я могу судить, глядя на файл project.clj на GitHub - зависит от org.clojure/clojure-http-client "1.0.0-SNAPSHOT", который также не существует в репозиториях.

Один из способов решения этой проблемы - установить банки, которые вы хотите, в локальное репо. ( Я, похоже, не помню точной команды... посмотрю это через минуту. См. например эта страница для инструкций.) Тогда Maven просто возьмет их оттуда.

(BTW, если вы хотите использовать Clojure + contrib 1.1.0, вы можете просто использовать "1.1.0" как строки версии сейчас. Это для org.clojure/clojure и org.clojure/clojure-contrib.)

О, и о супер POM - от эта страница в документах Maven:

Super POM - это POM по умолчанию Maven. Все POM расширяют Super POM, если явно не задано, что означает, что конфигурация, указанная в Super POM, наследуется POM, созданными для ваших проектов.

Что касается того, как он попал в ваше сообщение об ошибке, я честно понятия не имею. Вы можете добавить тег "maven" к этому вопросу или просто задать отдельный вопрос с этим тегом, чтобы получить на него некоторых гуру Maven.

Ответ 2

Я думаю, что все еще распространено, что проекты нарушают зависимости. Это печально, потому что это действительно имеет опыт.

Мое решение - перейти на http://clojars.org и найти нужную мне библиотеку. Обычно есть несколько версий. Я немного изучу http://github.com, чтобы узнать, какая из них наиболее актуальна. Тогда я пробую это как зависимость. Если это сработает, отлично! В противном случае я попробую другой.

Это долгий процесс, но я думаю, что он поправляется. Вы должны были видеть процесс раньше!

Ответ 3

Я получаю ту же ошибку в зависимости от суперпома maven, и когда я делаю

$ sudo lein deps

Он работает без ошибок. Не идеальное решение, но оно работает для меня.

Ответ 4

Я случайно загрузил swank- clojure в группу org.clojure около года назад. Я удалил его вскоре после того, как я не связан с этой группой, поэтому его невозможно найти. Могу ли я спросить, где вы нашли инструкции с ошибочной версией, чтобы ее можно было исправить?

Ответ 5

У меня была аналогичная проблема с лейн-кольцом, вызывающая сбой зависимости в отношении org.apache.maven:super-pom. Оказывается, проблема заключалась в том, что M2_HOME была установлена ​​версия Maven, которую я использую для работы. Сброс M2_HOME исправил проблему. Похоже, что leiningen не играет хорошо со странными реализациями Maven.

Ответ 6

С 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 

выполните задание.