Проблемы с импортом пакета из Github - PullRequest
0 голосов
/ 27 января 2019

, прежде чем я начну, вам, вероятно, нужно знать три вещи:

  1. У меня нет фона Java
  2. Я новичок в Clojure - начал изучать его
  3. вопрос связан с моим "обучающим" пакетом kennyfy

TL; версия DR Я не могу импортировать / использовать свое обучениепакет в проекте

Более длинная версия
Я поставил перед собой цель - написать простой API, который преобразует текст в kennyspeak.До этого я создал пакет (используя шаблон lein по умолчанию).

Я пытался импортировать этот пакет в мой API.

Часть project.clj выглядит следующим образом:

:repositories [["jitpack" "https://jitpack.io"]]
:dependencies [[com.github.radmen/clojure-kennyfy "0.1.2"]]

lein deps извлекает пакет без проблем.

Когда я пытаюсь его использовать, Clojure выдает ошибку со следующим сообщением:

kennyfy-api.core=> (radmen.kennyfy/kenny-speak "foo")

ClassNotFoundException radmen.kennyfy  java.net.URLClassLoader.findClass (URLClassLoader.java:382)

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

Что я делаю неправильно?

Спасибо

$ java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (build 1.8.0_192-b26)
OpenJDK 64-Bit Server VM (build 25.192-b26, mixed mode)

$ lein version
Leiningen 2.8.3 on Java 1.8.0_192 OpenJDK 64-Bit Server VM

Clojure 1.9.0

1 Ответ

0 голосов
/ 28 января 2019

Пространства имен clojure загружаются в первый раз, когда это требуется.

foo.core=> (radmen.kennyfy/kenny-speak "foo")

Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (URLClassLoader.java:382).
radmen.kennyfy
foo.core=> (require '[radmen.kennyfy :as kennyfy])
nil
foo.core=> (kennyfy/kenny-speak "foo")
"mpfppfppf"
foo.core=> (radmen.kennyfy/kenny-speak "foo")
"mpfppfppf"
foo.core=> 
...