Почему мой импорт Clojure не выполняется? - PullRequest
3 голосов
/ 29 сентября 2011

Я использую Clojure 1.3 с Contribute 1.1 в IntelliJ. Моя программа состоит из одной строки

(use 'clojure.contrib.prxml)

Я получаю следующую ошибку при запуске

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V

Ответы [ 3 ]

6 голосов
/ 29 сентября 2011

Я использую Clojure 1.3 с контентом 1.1

В этом ваша проблема.Версии Clojure и contrib связаны друг с другом и несовместимы между версиями.

Более того, contrib был разделен на множество небольших библиотек по состоянию на 1.3, поэтому на самом деле не существует версии "monolithic contrib"что вы можете использовать с 1.3.

5 голосов
/ 29 сентября 2011

В дополнение к ответам о том, что contrib 1.1 несовместим с clojure 1.3

Взято из здесь :

Версии clojure-contrib сопоставлены с версиями Clojure.

Если вы используете Clojure 1.0, используйте clojure-contrib 1.0.

Если вы используете Clojure 1.1, используйте clojure-contrib 1.1.

Если вы используете Clojure 1.2, используйте clojure-contrib 1.2 или новые модульные библиотеки Contrib .

Если вы используете Clojure 1.3, используйте новые модульные библиотеки Contrib .

На момент получения этого ответа я не уверен, существует ли версия clojure.contrib.prxml, совместимая с clojure-1.3 (Кто-то, пожалуйста, исправьте меня, если я ошибаюсь).

Поэтому я бы предложил использовать clojure-1.2.1 и clojure-contrib 1.2.0.

2 голосов
/ 29 сентября 2011

Нет ничего плохого в том, что вызов работает с clojure 1.2 и contrib 1.2

Если вам не нужно ничего специфического для 1.3, я бы предложил пока придерживаться 1.2, используйте clojure 1.2 и contrib 1.2 до ContributeАвторы правильно делают переход на 1,3

...