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
내부의 하위 양식은 특별한 방법으로 처리되는 것처럼 보입니다. 코드를 삽입하는 쉬운 방법을 찾지 못했습니다.
나는 어떤 방법
- https://github.com/weavejester/environ 유망 보이지만, 그렇지 않은
- https://groups.google.com/forum/?fromgroups=#!topic/leiningen/t8G6Et1_j8w project.clj 안에 만 적절한 Clojure의 코드에서 작동하는 것 같다에게 발견 -이 해결할 수있는 해결 방법은 문제
- What is an elegant way to set up a leiningen project that requires different dependencies based on the build platform?의 절반은 어떤 더러운 트릭을 할 project.clj에
- https://github.com/sattvik/leinjacker 약속을 코드를 평가 후면하는 방법을 몇 가지 아이디어를 제공,하지만 난 만들 수 없습니다 내 환경에서 작동합니다.
(실제로 내가 사용하기를 원하는 것은 다른 인공물이있는 clojurescript 프로젝트입니다. 다른 빌드를 구성 할 수는 있지만 모두 동일한 크로스 오버를 공유합니다.