User Tools

Site Tools


lecture:leiningen:docs

Leiningen

이름의 유래

Leininghen은 Esquire라는 미국 남성 잡지의 1938년 12월호에 실린 독일 작가 Carl Stephenson의 고전 단편 소설 “Leiningen Versus the Ants”(번역은 작가 스스로 한 듯) 에서 따온 이름이다. Leiningen은 이 소설의 주인공으로 숫소를 6분만에 먹어 치워 하얀 뼈만 남기고 사방을 초토화시키는 사람 엄지만한 크기의 병정 개미 군단에 맞서 자신의 농장(브라질의 플랜테이션)을 지키는 농장주이다. 그는 400 여명의 원주민 노동자를 고용하고, 자신의 이성과 지성, 그리고 지식과 문제풀이에 대한 합리적 접근으로 농장을 성공적으로 운영했다. 소설에서는 그의 지성과 발명가 기질을 드러내는 대목들이 여럿 있다. 다른 농장주들과는 달리 라이닝겐은 수 년간 운영해온 자신의 농장을 포기하지 않고 원주민 노동자들을 설득하여 병정 개미 군단과 맞써 싸우기로 한다. 이런 라이닝겐에게 사람들은 이렇게 말했다.

“라이닝겐 당신 미쳤군! 그 개미들은 당신이 맞서 싸울 수 있는 그런 생물이 아니야. 그건 불가항력의 자연재해라네! 길이 10 마일, 너비 2 마일에는 그야말로 개미밖에 없어! 그 개미 하나 하나가 지옥에서 온 악마라고…”

라이닝겐은 끝내 개미들을 물리치고 자신의 농장을 지켰다.

Ant는 자바 빌드 도구이고, Leiningen은 클로져 빌드 도구이다.

lein 옵션

아래와 같이 명령을 주면 Leiningen에서 할 수 있는 작업을 열거해 준다.

lein help
check               Check syntax and warn on reflection.
classpath           Write the classpath of the current project to output-file.
clean               Remove all files from project's target-path.
compile             Compile Clojure source into .class files.
deploy              Build jar and deploy to remote repository.
deps                Show details about dependencies.
do                  Higher-order task to perform other tasks in succession.
help                Display a list of tasks or help for a given task.
install             Install current project to the local repository.
jar                 Package up all the project's files into a jar file.
javac               Compile Java source files.
new                 Generate project scaffolding based on a template.
one-or-two          Dummy task for tests
plugin              DEPRECATED. Please use the :user profile instead.
pom                 Write a pom.xml file to disk for Maven interoperability.
repl                Start a repl session either with the current project or standalone.
retest              Run only the test namespaces which failed last time around.
run                 Run the project's -main function.
search              Search remote maven repositories for matching jars.
show-profiles       List all available profiles or display one if given an argument.
test                Run the project's tests.
trampoline          Run a task without nesting the project's JVM inside Leiningen's.
uberjar             Package up the project files and all dependencies into a jar file.
upgrade             Upgrade Leiningen to specified version or latest stable.
var-args            
version             Print version for Leiningen and the current JVM.
with-profile        Apply the given task with the profile(s) specified.

이 작업들은 lein 의 옵션으로 지정해서 수행된다.

템플릿

Leiningen은 다양한 종류의 프로젝트를 지원할 수 있다. 템플릿은 프로젝트의 각 종류별 기본 틀이다. Leiningen은 기본으로 4개의 템플릿을 제공한다.

  • plugin
  • app
  • template
  • default

Leiningen의 new 작업은 (lein new …)에 하나의 인자만 전달되면, default 템플릿이 사용되고, 그 인자는 프로젝트의 이름이 된다. new 작업에 2개의 인자가 전달되면, 첫 인자는 템플릿의 이름이 되고, 두 번째 인자는 프로젝트의 이름이 된다.

Leiningen이 제공하는 기본 템플릿 이외의 외부 템플릿은 https://clojars.org/search?q=lein-template 에서 찾을 수 있는데, 몇가지를 아래에 열거한다.

외부 템플릿으로 프로젝트를 생성하기 위해서는 new 작업의 첫 인자를 해당 템플릿의 group-id를 써주면 된다.

lein new storm-project my-storm-test
lecture/leiningen/docs.txt · Last modified: 2019/02/04 14:26 (external edit)