从Github导入软件包的问题

时间:2019-01-27 19:05:44

标签: clojure leiningen

在我开始之前,您可能需要了解三件事:

  1. 我没有Java背景
  2. 我是Clojure的新手-开始学习它
  3. 问题与我的“培训”计划kennyfy
  4. 有关

TL; DR版本,我无法在项目中导入/使用我的培训包

长版
我为自己设定了一个目标-编写将文本转换为kennyspeak的简单API。在此之前,我已经创建了一个包(使用默认的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 :(得分:3)

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=>