2

leiningen에서 호출 할 때 전달 된 인수에 따라 다르게 사용하려는 파일이 project.clj입니다. 여기에 (이 경우 get-argument 단순히 System/getProperty를 부를 것이다) 내 가상 샘플 프로젝트project.clj에서 읽을 수있는 leiningen에 대한 인수 전달

(defproject simple "0.0.1" 
    :source-paths [(get-argument "source.path")]) 

입니다. 나는

lein2 compile -Dsource.path=path/to/location 

문제는 두 가지이다,

  • 나는 leiningen에 인수를 전달하는 방법을 모르는, 다음과 같이이 파일을 사용합니다. -Dkey=value 구문을 허용하지 않습니다. 선택적/추가 인수 전달에 대한 설명서에서 아무것도 찾을 수 없습니다. 나는 명백한 것을 놓치고 있는가?
  • defproject 내부의 하위 양식은 특별한 방법으로 처리되는 것처럼 보입니다. 코드를 삽입하는 쉬운 방법을 찾지 못했습니다.

나는 어떤 방법

(실제로 내가 사용하기를 원하는 것은 다른 인공물이있는 clojurescript 프로젝트입니다. 다른 빌드를 구성 할 수는 있지만 모두 동일한 크로스 오버를 공유합니다.

답변

9

유닉스 계열 플랫폼에서 편리한 방법 중 하나는 lein이 물결표로 표시된 표현을 평가하려는 환경 변수와 결합하는 것입니다 project.clj 개의 파일에 있습니다. 그래서 예를 들어, 당신이 제공 할 수있는 project.clj 같은이 같은 lein을 시작할 때

 
(defproject simple "0.0.1" 
    :source-paths [~(System/getenv "MY_SRC_PATH")] 
    :dependencies [[org.clojure/clojure "1.5.0"]]) 

가 ... 다음 환경 변수를 설정 : 몰라요

 
MY_SRC_PATH="s2" lein compile 

얼마나 잘이 방법은 것 Windows에서 작동합니다.