lein new app ...
을 만들었을 때 lein repl
에서 함수를 호출 할 때 내 네임 스페이스에서 문제가 없습니다. 그러나 에서 함수를 호출 할 수있는 것 같지 않습니다. 단지 lein new ...
을 통해 라이브러리 프로젝트를 만들었습니다. 세부 사항은 다음과 같습니다.lein 앱과 라이브러리의 lein repl 네임 스페이스가 다릅니 까?
lein new app my-app
으로 lein 앱을 만든 다음 프로젝트 디렉토리 (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
이기만 I core.clj
의 NS :require [my-app.anotherfile]
매크로.
좋습니다. 이제 저는 lein 라이브러리와 비슷하게하고 싶습니다. 그래서 lein new my-lib
다음 lein repl
, 그리고 나는 user
네임 스페이스에 있어요 :
user=>
응? 좋아, 잘, 내 LIB 내가
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)
아니
을 시도(ns my-lib.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
(이 leiningen 기본적으로 생성 단지 하나) 내가 호출 할 함수가 포함되어 있습니다. 이건 어때?
user=> (my-lib.core/foo 42)
; ClassNotFoundException two-files-lib.core java.net.URLClassLoader$1.run (URLClassLoader.java:202
aha! 다른 오류는 있지만 시력 교정은 아직 없습니다. lein compile
및 lein javac
은 아무 것도하지 않는 것 같습니다.
문서 또는 온라인에서 정확한 주문을 찾거나 추론 할 수 없어 충고에 감사드립니다.