2012-06-26 2 views
2

오류를 누아 오류 페이지에 표시된 : java.io.FileNotFoundException: Could not locate boundaries/lat_long__init.class or boundaries/lat_long.clj on class path의 Clojure 네임 스페이스 지정 변환 -에 _

코드를 필요

(ns boundaries.views.boundary 
    (:use noir.core 
     hiccup.core 
     hiccup.page-helpers) 
    (:require 
    [boundaries.lat-long :as lat-long] 
    [noir.response :as resp])) 

왜 대신 지정된 lat-longlat_long를 찾고? boundaries/lat-long.clj뿐만 아니라 상응하는 경계가 존재합니다. 긴 긴 이름 공간. Clojure의 컴파일러는 _

문제가 project.clj 종속성 가능성이 높습니다로 변환 있도록

+0

안녕하세요. Chris입니다. 응답이라고 생각합니다. http://stackoverflow.com/q/4420944/151650 – DanLebrero

답변

4

JVM은 클래스 이름에 -의를 허용하지 않습니다.

문제 이런 종류의 진단 다음 REPL에서 사용할 수있는 공간이

  • 입니다?
  • .class 파일이 프로젝트의 lib 디렉토리에 나타 납니까?
  • 다시 실행 lein deps
+0

알겠습니다. 내가 배우는대로, 나는 관습을 고수하고 싶다. Clojure 개발자는 일반적으로 Java에서와 마찬가지로 camelcase를 채택합니까? – Chris

+0

저는 자바 관습에 관해서 물어 보는 사람이 아닙니다. 바라건대 누군가는 논평 할 것입니다 ... 사용하는 것이 완벽하게 훌륭합니다 - 이름에서, 나는 그다지 좋아하지 않습니다. 나는 내 게시물에서 그것을 제거 할 것입니다, 그것은 너무 IMHO에 대한 찬사입니다 ;-) –

+0

오, 안돼! 다행히도 저는 다른 사람들이 사용하는 것을 만들고 싶기 때문에 그러한 관행과 개인적인 미학이 중요합니다. – Chris

0

당신은 lat_long.clj/경계에 경계/위도 - long.clj의 이름을 변경해야합니다.

네임 스페이스 이름을 변경할 필요가 없습니다. 클로저 규약은 함수와 네임 스페이스 이름에 "-"를 사용하는 것이다.

https://stackoverflow.com/a/4451693/151650의 스튜어트 시에라 (Stuart Sierra) 응답 : "Java 상호 운용성에 필요한 해결 방법입니다."

관련 문제