clojure - leiningen을 쓰다가..

개인 파일을 추가해서, 로컬에서는 다른 포트로 서비스를 띄우고 싶음

env

  • local에서만 쓰는 환경변수를 파일로 구성하고 싶다.
  • 현재 쓰는 luminus를 변형한 템플릿은 lein environ을 사용해 .lein-env를 로드해서 쓴다.
  • .lein-env 는 project.clj 의 env를 읽어서 만든다
  • project.clj는 변경하기 싫으므로. 내가 개인 로컬 파일을 추가하는 방법은?
(defn env-file [project]
  (io/file (:root project) ".lein-env")) ;; 프로젝트 루트에서 .lein-env 라는 파일 객체를 만듦  

(spit "a.txt" "test") ;; a.txt에 test라는 텍스트를 씀

(defn read-env [project]
  (map-vals #(replace-project-keyword % project) (:env project {})))

  • 현재쓰는 템플릿은 프로필을 project.clj에 지정해놓고 쓰는 방식이다.
  • main함수의 구현이 서비스 포트 변경은 가능하지만, 기타 다른 환경변수는 파일 하나 추가해서는 불가능한 구조
  • lein run -Daaa-port=1238 이런것도 luminus에서는 되지만 현재 자체 템플릿에서는 안됨.
(defn env []
  (merge-maps (or (load-lein-env) {})
              (source/from-system-props)
              (source/from-env)))

다시 애매한 부분 추가

  • system, 환경이나 from-env로는 못읽는건가 -_-
  • System.getenv와 System.getProperty의 차이는 뭐지, 이 두개도 머지를 하는데?

results matching ""

    No results matching ""