2011-02-01 2 views
2

방금 ​​criterium을 설치 했으므로 repl 및 다른 프로젝트에서 사용할 수 있기를 원합니다. 내가 설치된 라이브러리를 어디서든 사용할 수 있도록 Java 클래스 경로를 확장하려면 어떻게해야합니까?Clojure 프로젝트를 설치하고 클래스 패스에 넣기

앞으로는 모든 프로젝트에서 쉽게 사용할 수있는 답변을 보내 주시면 감사하겠습니다. 나는 leiningen을 사용하고 있는데, 당신이 lein install을 실행할 때 이것을 할 것이라고 생각 하겠지만, 나는 잘못된 것을하고 있거나 충분하지 않습니다.

답변

8

당신은 기본 maven (lein use the hood)과 java classpath mechanics를 배워야합니다. 간략한 개요 :

maven은 홈 폴더의 숨김 디렉토리 .m2에 의존성을 저장합니다. 폴더 주변을 탐색하면 의미가 있습니다. lein install을 실행하면 해당 폴더에 jar 파일이 저장됩니다. 설치 한 것을 찾으십시오. 그러나 사용하는 대부분의 종속성은 clojars와 같은 서버에 있으므로 수동으로 설치하지 않아도됩니다. 예 : 기준은 here입니다.

프로젝트에서 criterium을 project.clj의 종속성으로 추가해야합니다.

(defproject your-project "0.1.5" :description "blah" 
    :dependencies [[org.clojure/clojure "1.2.0"] 
       [org.clojure/clojure-contrib "1.2.0"] 
       [criterium "0.0.1-SNAPSHOT"] 
       ] 
    :dev-dependencies 
    [[swank-clojure "1.2.1"]]) 

이제 프로젝트의 루트 폴더로 이동하여 lein deps을 실행하십시오. 그러면 project.clj의 종속성이 다운로드되어 .m2 및 프로젝트의 lib 폴더에 자동으로 저장됩니다. 클래스 경로 설정 실행 lein repl

이 project.clj의에서 종속성으로 추가해야합니다 선정시를 사용하는 각 프로젝트와 REPL을 시작하려면

5
나는 모든 프로젝트에 쉽게 작업 할 수 있습니다 답변을 주시면 감사하겠습니다

나는 앞으로 일한다.

불행하게도 이것은 JVM에서 불가능합니다. 런타임에는 클래스 경로를 수정할 수 없기 때문에 각 프로젝트마다 별도로 계산해야합니다.

$ lein install swank-clojure 1.3.0-SNAPSHOT 

이 모두에 사용할 수 있도록 것이다, ~/.lein/플러그인에 허풍-Clojure를 설치합니다 : Leiningen 및 cljr 같은 도구가 어떤 상황에서 비슷한 제공 할 수 있지만 더 시스템 전체 클래스 경로는 없다 Leiningen 프로젝트는 개발자 종속성으로 간주되며 프로젝트의 컨텍스트 외부에서 "lein repl"을 수행 할 때 사용할 수 있습니다. 그러나 프로젝트의 실제 종속성은 해당 프로젝트의 project.clj 파일에 있어야합니다. 그렇지 않으면 시스템에서 작동하지만 반복 할 수없는 프로젝트를 쉽게 작성할 수 있습니다.

관련 문제