当我lein repl
创建一个lein new app ...
. lein repl
但是当我只是通过创建库项目时,我似乎无法调用函数lein new ...
。详情如下:
当我创建一个 lein 应用程序时,比如说lein new app my-app
,然后,从项目目录(包含 的目录project.clj
),我做lein repl
. repl 将我留在命名空间中my-app.core
my-app.core=>
我现在可以调用 repl 中的函数,甚至可以调用边文件中定义的函数。
my-app.core=> (-main)
; Hello, world!
my-app.core=> (my-app.anotherfile/foo)
; Hey, there; this is foo from anotherfile
只要我:require [my-app.anotherfile]
在 ns 宏中core.clj
。
好,很好; 现在我想对 lein 库做类似的事情。所以我lein new my-lib
,然后lein repl
,我在user
命名空间中:
user=>
嗯?好的,我的 lib 包含一个我想调用的函数(这只是 leiningen 默认创建的函数)
(ns my-lib.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
我试试
user=> (in-ns 'my-lib.core)
my-lib.core=> (foo 42)
; CompilerException java.lang.RuntimeException: Unable to resolve symbol: foo in this context, compiling:(NO_SOURCE_PATH:1:1)
不。这个怎么样?
user=> (my-lib.core/foo 42)
; ClassNotFoundException two-files-lib.core java.net.URLClassLoader$1.run (URLClassLoader.java:202
啊哈!不同的错误,但仍然无法治愈。lein compile
并且lein javac
似乎也没有做任何事情。
我无法在文档或在线上找到或推断出正确的咒语,我将不胜感激。