2011-09-14 4 views
20

하나의 디렉토리에 lein 프로젝트가 있는데,clojure lein : 프로젝트의 다른 디렉토리에있는 소스를 어떻게 포함합니까?

을 실행할 때 다운로드되는 .jar 대신

> lein deps 

복제 된 github 저장소의 소스를 사용하고 싶습니다. 항아리). leiningen으로 이것을 수행 할 수있는 표준 방법은 무엇입니까?

내 프로젝트 파일은 다음과 같습니다.

(defproject oroboros "1.0.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :dependencies [[org.clojure/clojure "1.2.1"] 
       [org.clojure/clojure-contrib "1.2.0"] 
       [clojure-source "1.2.1"] 
       [overtone "0.3.0"] 
       [penumbra "0.6.0-SNAPSHOT"]] 
    :native-dependencies [[penumbra/lwjgl "2.4.2"]] 
    :dev-dependencies [[native-deps "1.0.5"] 
        [swank-clojure "1.4.0-SNAPSHOT"]]) 

clojars의 것보다는 github의 오버톤 repo를 사용하고 싶습니다.

https://github.com/overtone/overtone

이것이 가능합니까?

답변

20

체크 아웃 의존성을 사용할 수 있습니다. Leiningen's README에서 :

Q : 저는 병렬로 두 개의 프로젝트를 해킹 할,하지만 그들 사이 스위치에 짜증나.

A : 체크 아웃 종속성이라는 기능을 사용하십시오. 프로젝트 루트에 checkouts이라는 디렉토리를 만들고 다른 프로젝트 루트를 심볼릭 링크하면 Leiningen은 병렬로 해킹 할 수 있습니다. 즉, 주 프로젝트에서 종속성의 변경 사항이 install/switch-projects/deps/restart-repl주기 전체를 ​​거치지 않아도 확인할 수 있습니다. 이것은 프로젝트를 대체하기위한 대체품이 아니며 :dependencies에 있음을 유의하십시오. 단순히 은 더 엄격한 변경주기를 보완합니다.

+0

체크 아웃 디렉토리를 추가하고 저장소를 연결하면 작동하지 않습니다. 여기서 내가해야 할 일이 더 있니? 이 기능은 다른 곳에서 설명한 것이 아닙니다. – prismofeverything

+2

checkouts 디렉토리에 링크를 추가하면 project.clj 파일에서 종속성을 지정할 필요가 없습니다. 문서가 암시하는 것과는 달리 project.clj 파일의 참조를 제거해야합니다. 그렇지 않으면 lein deps가 중단됩니다. –

+0

주스트가 올바르다면, 당신은 overtone을 project.clj의 : dependencies에서 제거해야합니다. – mtyaka

1

내가 lein을 사용할 때 체크 아웃 된 Overtone 소스 디렉토리에 내 프로젝트 디렉토리에 심볼릭 링크를 넣기 만하면됩니다.

나는 외부 프로젝트를 클래스 경로에 추가하는 기능을 지원하는 최근 Overtone 해킹을 위해 케이크를 사용합니다. 프로젝트의 .cake/config 파일에 project.classpath에 대한 경로를 추가하기 만하면됩니다.

project.classpath = /Users/sam/Development/improcess/lib/overtone/src: 
관련 문제