practice / blog

For personal blogging
1 stars 0 forks source link

Leiningen project에서 java와 clojure 소스를 같이 동시에 #8

Open practice opened 9 years ago

practice commented 9 years ago

https://github.com/technomancy/leiningen/blob/stable/doc/MIXED_PROJECTS.md 에 설명되어 있긴 한데 요약하면 아래와 같이 :source-paths and :java-source-paths 를 사용하면 된다. :javac-options도 주는 것이 좋다.

(defproject megacorp/superservice "1.0.0-SNAPSHOT"
  :description "A Clojure project with a little bit of Java sprinkled here and there"
  :min-lein-version "2.0.0"
  :source-paths ["src/clojure"]
  :java-source-paths ["src/java"]
  :javac-options     ["-target" "1.8" "-source" "1.8"])

내 경우 이렇게 바꾸고 나서 실행하니 ClassNotFoundException오류가 나더라. 소스를 못찾아서 그런거다. 한참 헤매다가 갑자기 동작했는데 원인을 잘 모르겠다. lein uberjar때문인지 lein search clojure때문인지... 😂

practice commented 9 years ago

그냥 내 코드에 문제가 있었던듯... :require에 넣지 않고 full namespace로 호출하는 코드가 있었던 것이 문제였나 봄.

practice commented 9 years ago

https://github.com/technomancy/leiningen/blob/master/sample.project.clj

project.clj 에서 쓸 수 있는 여러가지 옵션 사용례가 있음.